角镖组件初始化

时间:2014-10-10 14:22:58

标签: dart components angular-dart

有没有办法等待组件初始化?

@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方法的接口?

2 个答案:

答案 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,它也有效。