更改 angular2 模板中的属性值
Changing attributes value in angular2 template
我有简单的 angular2 组件:
import {Component} from 'angular2/core';
@Component({
selector: 'circle',
template: `<svg height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black"
stroke-width="3" fill="red" />
</svg>`,
})
export class Circle { }
我想使用组件的一些参数动态更改 fill
属性,例如 <circle color="red"></circle>
,结果有红色圆圈。可能吗?
您可以将 [...]
语法与 attr
前缀一起用于您的属性。请参阅以下内容:
@Component({
selector: 'circle',
template: `<svg height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black"
stroke-width="3" [attr.fill]="fillAttr" />
</svg>`,
})
export class Circle {
fillAttr:string = 'red';
}
如果要为组件提供输入,请使用 @Input
装饰器:
@Component({
selector: 'circle',
(...)
})
export class Circle {
@Input('color')
fillAttr:string = 'red';
}
我有简单的 angular2 组件:
import {Component} from 'angular2/core';
@Component({
selector: 'circle',
template: `<svg height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black"
stroke-width="3" fill="red" />
</svg>`,
})
export class Circle { }
我想使用组件的一些参数动态更改 fill
属性,例如 <circle color="red"></circle>
,结果有红色圆圈。可能吗?
您可以将 [...]
语法与 attr
前缀一起用于您的属性。请参阅以下内容:
@Component({
selector: 'circle',
template: `<svg height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black"
stroke-width="3" [attr.fill]="fillAttr" />
</svg>`,
})
export class Circle {
fillAttr:string = 'red';
}
如果要为组件提供输入,请使用 @Input
装饰器:
@Component({
selector: 'circle',
(...)
})
export class Circle {
@Input('color')
fillAttr:string = 'red';
}