小编Mic*_*ski的帖子

如何在Angular.Dart中以编程方式添加组件?

我想基于从AJAX调用接收的一些信息动态构建组件树.

如何以编程方式从其他组件内部向DOM添加组件?我有<outer-comp>,我想,基于一些逻辑,插入一个<inner-comp>.以下代码只是将元素插入<inner-comp></inner-comp>DOM,而不是实际<inner-comp>表示.

@NgComponent(
  selector: 'outer-comp',
  templateUrl: 'view/outer_component.html',
  cssUrl: 'view/outer_component.css',
  publishAs: 'outer'
)
class AppComponent extends NgShadowRootAware {      
  void onShadowRoot(ShadowRoot shadowRoot) {
    DivElement inner = shadowRoot.querySelector("#inner");
    inner.appendHtml("<inner-comp></inner-comp>");
  }
}
Run Code Online (Sandbox Code Playgroud)

更新: 我设法以下列方式正确渲染内部组件,但我仍然不确定这是否正确:

class AppComponent extends NgShadowRootAware {
  Compiler compiler;
  Injector injector;
  AppComponent(this.compiler, this.injector);

  void onShadowRoot(ShadowRoot shadowRoot) {
    DivElement inner = shadowRoot.querySelector("#inner");
    inner.appendHtml("<inner-comp></inner-comp>");    
    BlockFactory template = compiler(inner.nodes);
    var block = template(injector);
    inner.replaceWith(block.elements[0]); 
  }
Run Code Online (Sandbox Code Playgroud)

}

dart shadow-dom angular-dart

19
推荐指数
2
解决办法
4354
查看次数

标签 统计

angular-dart ×1

dart ×1

shadow-dom ×1