Angular 2.0 和 ng 风格
Angular 2.0 and ng-style
我正在构建一个 Angular 2.0 组件,我想动态控制它的样式(使用 ng-style
)。在快速查看 Angular 2 的文档后,我尝试了这个:
<div class="theme-preview" ng-style="{'font-size': fontSize}">
{{fontSize}}
</div>
而且看到尺寸其实是印在里面的div但是不影响样式。 fontSize
是组件的 属性 绑定之一,这意味着组件像这样从其父级获取它:
<my-component [font-size]="size" />
在组件内部我有:
@Component({
selector: 'XXX',
properties: ['fontSize']
})
我是不是漏掉了什么?
更新
人们仍然可以找到这个答案,所以我已将 plnkr 更新为 beta.1。到目前为止有两件事发生了变化
- 不再需要在指令中显式添加 NgStyle 属性。它是默认添加的通用指令的一部分。
- 语法已更改,现在必须是驼峰式大小写。
例子
@Component({
selector : 'my-cmp',
template : `
<div class="theme-preview" [ngStyle]="{'font-size': fontSize+'px'}">
{{fontSize}}
</div>`
})
class MyCmp {
@Input('font-size') fontSize;
}
@Component({
selector: 'my-app',
directives: [MyCmp],
template: `
<my-cmp [font-size]="100"></my-cmp>
`
})
看到这个plnkr(更新到 beta.1)
具体样式也可以这样用:
<div class="theme-preview" [style.font-size]="fontSize+'px'">
像这样的东西现在正在最新版本的 angular 上运行 4,语法实际上发生了变化,请注意 [ngStyle]
.color-box {
width: 10px;
height: 10px;
display: inline-block;
}
<div class="color-box" [ngStyle]="{'background-color': your.model.object.color_code}"></div>
我正在构建一个 Angular 2.0 组件,我想动态控制它的样式(使用 ng-style
)。在快速查看 Angular 2 的文档后,我尝试了这个:
<div class="theme-preview" ng-style="{'font-size': fontSize}">
{{fontSize}}
</div>
而且看到尺寸其实是印在里面的div但是不影响样式。 fontSize
是组件的 属性 绑定之一,这意味着组件像这样从其父级获取它:
<my-component [font-size]="size" />
在组件内部我有:
@Component({
selector: 'XXX',
properties: ['fontSize']
})
我是不是漏掉了什么?
更新
人们仍然可以找到这个答案,所以我已将 plnkr 更新为 beta.1。到目前为止有两件事发生了变化
- 不再需要在指令中显式添加 NgStyle 属性。它是默认添加的通用指令的一部分。
- 语法已更改,现在必须是驼峰式大小写。
例子
@Component({
selector : 'my-cmp',
template : `
<div class="theme-preview" [ngStyle]="{'font-size': fontSize+'px'}">
{{fontSize}}
</div>`
})
class MyCmp {
@Input('font-size') fontSize;
}
@Component({
selector: 'my-app',
directives: [MyCmp],
template: `
<my-cmp [font-size]="100"></my-cmp>
`
})
看到这个plnkr(更新到 beta.1)
具体样式也可以这样用:
<div class="theme-preview" [style.font-size]="fontSize+'px'">
像这样的东西现在正在最新版本的 angular 上运行 4,语法实际上发生了变化,请注意 [ngStyle]
.color-box {
width: 10px;
height: 10px;
display: inline-block;
}
<div class="color-box" [ngStyle]="{'background-color': your.model.object.color_code}"></div>