有没有办法等待组件初始化?
@Component(
selector: "my-component",
templateUrl: 'component/my.html',
useShadowDom: false,
publishAs: "ctrl"
)
class MyComponent {
@NgAttr('foo')
String foo;
}
@NgAttr('bar')
String bar;
}
MyComponent(){
print(foo);
print(bar);
}
}
用法:
<my-component foo="bar" bar="baz"></my-component>
当我使用这样的组件时,构造函数打印:null,null
我可以为foo和bar写一个setter,并检查每一组是否都设置了。但如果没有提供任何价值,我的init永远不会被解雇。
我是否必须实现提供init方法的接口?
答案 0 :(得分:2)
与此处Connecting 2 controllers and have access to the first controllers propertie in the second controller
相同实施AttachAware
界面。在构造元素之前,不能设置实例的值,因此在执行构造函数时没有机会从外部设置字段。
答案 1 :(得分:2)
正如Günter所说,实施AttacheAware或!! ShadowRootAware。 onShadowRoot是在onAttachAware之后发布的。它给你的参数(ShadowRoot)是你的自定义元素。该名称具有误导性 - 如果useShadowDom为false,它也有效。