我看到一些Angular dart样本使用以下形式指定属性绑定:
@NgComponent(
selector: 'foobar',
publishAs: 'foo',
map : const { "label" : "@label"}
)
其他人注释个别字段:
class FooBar {
@NgOneWayOneTime("label")
String label;
}
我有理由想要使用一种形式而不是另一种吗?
接下来的问题:我可以混合使用这两种形式吗?
假设我有一个基类:
MyBase {
@NgOneWay("label")
String label;
}
我可以从该基类继承,并让Angular选择注释吗?
答案 0 :(得分:5)
我相信建议你使用注释,因为它们更具可读性。
有些用例可能需要使用旧式映射,例如,将该类重用于多个组件/指令/控制器:
@NgComponent(selector: 'foo', map: const {'attr-a': '=>attrA'})
@NgComponent(selector: 'bar', map: const {'attr-a': '=>!attrA'})
class FooBarComponent {
String attrA;
}
如您所见,您可以定义不同的映射但使用相同的类。从理论上讲,这很少需要,但如果需要,它可以使用。
这两种表单目前都不支持继承。如果您对此感到强烈,请file a feature request。
答案 1 :(得分:1)
仅供参考,现在有一个PR待处理添加对继承的支持,请检查"Add support for inheritance in Directives and Components"