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>