NgComponent ready event

2019-08-29 15:24发布

I am trying to create a NgComponent which is populated with elements when the component is loaded. How do I know when the component is populated with the template? Here is some of my code:

class SleepTimeModule extends Module {
  SleepTimeModule() {
    //...
    type(SleepGraph);
    //...
  }
}

//...

@NgComponent(
  selector: 'sleep-graph',
  publishAs: 'sleepGraph',
  template: '<div><svg></svg></div>'
)
class SleepGraph {
  Element element;
  Scope scope;

  @NgTwoWay('data')
  var data;

  SleepGraph(this.element, this.scope);

  // when can I call this method?
  // it modifies the dom
  drawChart(data){
    js.context.callMethod("drawChart", [
      element.shadowRoot.querySelector("svg"),
      new js.JsObject.jsify(data)
    ]);
  }
}

1条回答
孤傲高冷的网名
2楼-- · 2019-08-29 16:06

Implement NgShadowRootAware's onShadowRoot method, like this:

//...
class SleepGraph implements NgShadowRootAware {
    //...
    // This method is called when the dom is ready
    void onShadowRoot(ShadowRoot shadowRoot){

    }
}

There are already similar questions:

查看更多
登录 后发表回答