Angular2 - 具有ng风格的SVG

时间:2017-04-25 20:53:30

标签: javascript angularjs typescript svg

我正在绘制带有ng-repeat的SVG Lines,并希望更改每行的平移。但是,使用ng-attr-style,我无法获得要应用的样式。

MY-component.js:

import {Component} from 'angular2/core';

@Component({
    selector: 'my-component',
    templateUrl: 'my-component.html'
})

export class MyComponent{
  lines: [
    { translateX: 0.0, translateY: 0.0, weight: 0.40, x1: 86.69, y1: 1, x2: 98.91, y2: 1 },
{ translateX: 0.0, translateY: 0.0, weight: 0.40, x1: 85.31, y1: 9.67, x2: 98.23, y2: 9.67 }
  ]
}

我的组分-HTML:

<svg id="lines" viewBox="0 0 320.6 542.59">
  <line *ngFor="let line of lines" ng-attr-style="{'transform': 'translate('+line.translateX+'px, ' + line.translateY+'px)'}" class="line" [attr.x1]="line.x1" [attr.y1]="line.y1" [attr.x2]="line.x2" [attr.y2]="line.y2"/>
</svg>

这是我在检查dom中的元素时看到的:

<line _ngcontent-ssx-9="" class="line" ng-attr-style="{'transform': 'translate('+line.translateX+'px, ' + line.translateY+'px)'}" x1="189.1" y1="226.41" x2="212.06" y2="226.41"></line>

1 个答案:

答案 0 :(得分:1)

Angular 1正在使用

ng-attr-*,你应该使用[attr.style](属性绑定)

[attr.style]="{'transform': 'translate('+line.translateX+'px, ' + line.translateY+'px)'}"