5

我看到一些 Angular dart 示例使用这种形式指定属性绑定:

@NgComponent(
  selector: 'foobar',
  publishAs: 'foo',
  map : const { "label" : "@label"}
)

而其他人注释单个字段:

class FooBar {
  @NgOneWayOneTime("label")
  String label;
 }

我是否有理由要使用一种形式而不是另一种形式?

还有一个问题:我可以混合和匹配这两种形式吗?

假设我有一个基类:

MyBase {
   @NgOneWay("label")
   String label; 
}

我可以从该基类继承,并让 Angular 获取注释吗?

4

2 回答 2

5

我相信建议您使用注释,因为它们更具可读性。

当您可能想要使用旧式映射时,有一些用例,例如,为多个组件/指令/控制器重用该类:

@NgComponent(selector: 'foo', map: const {'attr-a': '=>attrA'})
@NgComponent(selector: 'bar', map: const {'attr-a': '=>!attrA'})
class FooBarComponent {
   String attrA;
}

如您所见,您可以定义不同的映射但使用相同的类。从理论上讲,这应该很少需要,但如果需要,它是可用的。

目前两种形式都不支持继承。如果您对此感觉强烈,请提交功能请求。

于 2014-01-27T15:49:48.973 回答
1

仅供参考,现在有一个 PR 正在等待添加对继承的支持,请检查“在指令和组件中添加对继承的支持”

于 2014-04-17T09:34:41.797 回答