Angular 2.0和ng-style

Yan*_*aim 21 javascript angular

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

<div class="theme-preview" ng-style="{'font-size': fontSize}">
  {{fontSize}}
</div>
Run Code Online (Sandbox Code Playgroud)

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

<my-component [font-size]="size" />
Run Code Online (Sandbox Code Playgroud)

在组件内部,我有:

@Component({
  selector: 'XXX',
  properties: ['fontSize']
})
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

Eri*_*nez 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>
  `
})
Run Code Online (Sandbox Code Playgroud)

请参阅此plnkr(已更新至beta.1)


小智 11

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

<div class="theme-preview" [style.font-size]="fontSize+'px'">
Run Code Online (Sandbox Code Playgroud)

  • 或者``<div class ="theme-preview"[style.font-size.px] ="fontSize">`;-) (12认同)