填写这份《一分钟调查》,帮我们(开发组)做得更好!去填写Home

SVG 作为模板

SVG as templates

你可以在 Angular 应用程序中将 SVG 文件用作模板。当你使用 SVG 作为模板时,就可以像 HTML 模板一样使用指令和绑定。使用这些功能,你可以动态生成交互式图形。

You can use SVG files as templates in your Angular applications. When you use an SVG as the template, you are able to use directives and bindings just like with HTML templates. With these features, you can dynamically generate interactive graphics.

包含本章代码片段的工作实例参阅现场演练 / 下载范例

See the现场演练 / 下载范例for a working example containing the code snippets in this guide.

SVG 语法示例

SVG syntax example

以下示例显示了将 SVG 用作模板的语法。

The following example shows the syntax for using an SVG as a template.

src/app/svg.component.ts
      
      import { Component } from '@angular/core';

@Component({
  selector: 'app-svg',
  templateUrl: './svg.component.svg',
  styleUrls: ['./svg.component.css']
})
export class SvgComponent {
  fillColor = 'rgb(255, 0, 0)';

  changeColor() {
    const r = Math.floor(Math.random() * 256);
    const g = Math.floor(Math.random() * 256);
    const b = Math.floor(Math.random() * 256);
    this.fillColor = `rgb(${r}, ${g}, ${b})`;
  }
}
    

要想查看属性和事件绑定的实际效果,请把以下代码添加到你的 svg.component.svg 文件中:

To see property and event binding in action, add the following code to your svg.component.svg file:

src/app/svg.component.svg
      
      <svg>
  <g>
    <rect x="0" y="0" width="100" height="100" [attr.fill]="fillColor" (click)="changeColor()" />
    <text x="120" y="50">click the rectangle to change the fill color</text>
  </g>
</svg>
    

这个例子使用了事件绑定语法 click() 和属性绑定语法([attr.fill]="fillColor")。

The example given uses a click() event binding and the property binding syntax ([attr.fill]="fillColor").