Angular 2.0和ng-style

时间:2015-08-30 19:41:35

标签: javascript angular

我正在构建一个Angular 2.0组件,我想动态地控制它的风格(使用ng-style)。在快速查看Angular 2的文档后,我尝试了这个:

<div class="theme-preview" ng-style="{'font-size': fontSize}">
  {{fontSize}}
</div>

并且看到尺寸实际上印在div内但没有影响风格。 fontSize是组件的属性绑定之一&#39;,这意味着组件从其父级获取它,如下所示:

<my-component [font-size]="size" />

在我的组件内部:

@Component({
  selector: 'XXX',
  properties: ['fontSize']
})

我在这里错过了什么吗?

3 个答案:

答案 0 :(得分:49)

更新

人们仍然会得到这个答案,所以我已经将plnkr更新为beta.1。到目前为止,有两件事发生了变化

  • 不再需要在directives属性中显式添加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

答案 1 :(得分:11)

对于特定样式,您也可以使用:

<div class="theme-preview" [style.font-size]="fontSize+'px'">

答案 2 :(得分:0)

这样的东西实际上正在处理最新版本的角度4,语法实际上已经改变,请注意 [ngStyle]

.color-box {
    width: 10px;
    height: 10px;
    display: inline-block;
}

<div class="color-box" [ngStyle]="{'background-color': your.model.object.color_code}"></div>