私が見つけたAngularCliのコンポーネントにsvgを追加するすべてのチュートリアルでは、次のようなhtmlテンプレートに挿入することをお勧めします。
<div>
<svg viewBox="0 0 250 250">
<svg:g class="group">
<svg:polygon class="shield" points="125,30 125,30 125,30 31.9,63.2 46.1,186.3 125,230 125,230 125,230 203.9,186.3 218.1,63.2" />
<svg:path class="a" d="M125,52.1L66.8,182.6h0h21.7h0l11.7-29.2h49.4l11.7,29.2h0h21.7h0L125,52.1L125,52.1L125,52.1L125,52.1
L125,52.1z M142,135.4H108l17-40.9L142,135.4z"/>
</svg:g>
</svg>
</div>
しかし、私はテンプレートを明確に保ち、分離されたsvgファイルへのURLを含むいくつかのタグのみをその中に挿入したいと思います。
<svg class="star">
<use xlink:href="../../../assets/images/svg/star.svg"
x="0"
y="0" />
</svg>
コンポーネントで分離されたsvgファイルを使用するにはどうすればよいですか?
SVGファイルをsrc/assetsフォルダーに含め、svgフォルダーをangular.json
ファイルに追加します。
"assets": [ "src/assets/svg/*" ]
このようにして、必要に応じてファイルをコンポーネントに含めることができます。
logo.svg
がある場合:
src/assets
フォルダに入れてくださいangular.json
構成にフォルダーを含めます:"assets": [ "src/assets" ]
<img src="assets/svg/logo.svg">
これを行う1つの方法は、svgファイルのidプロパティを設定し、svgファイルをアセットフォルダーに配置することです。次に、そのIDを次のようにmat-iconで使用します。
<mat-icon matSuffix svgIcon="your-id"></mat-icon>
これはそれを行うためのより良い方法です。このようにして、UIhtmlコードでsvgタグを処理する必要はありません。また、これはグーグルアイコンをサポートしています。
ただし、angular materialを使用している場合は機能します。