Dart 如何以编程方式创建自定义组件并添加到页面?

Dart 如何以编程方式创建自定义组件并添加到页面?,dart,angular-dart,Dart,Angular Dart,是否可以定义一个角度省道组件,然后以编程方式创建该组件的实例并将其添加到您的网页中?我希望会有这样的事情: import'package:web_sandbox/web_sandbox.dart'; 将“包:角度/角度.dart”作为ng导入; void main(){ document.body.appendHtml(“”); var节点=document.body.query('web-sandbox-component'); ng.编译(节点); } 是否可以通过编程方式创建一个angu

是否可以定义一个角度省道组件,然后以编程方式创建该组件的实例并将其添加到您的网页中?我希望会有这样的事情:

import'package:web_sandbox/web_sandbox.dart';
将“包:角度/角度.dart”作为ng导入;
void main(){
document.body.appendHtml(“”);
var节点=document.body.query('web-sandbox-component');
ng.编译(节点);
}

是否可以通过编程方式创建一个angular web组件并将其添加到页面中,可能像上面的伪示例一样,如果是这样,如何创建?

我认为angular不可能做到这一点

您可以在DOM中添加一个HTML标记
,告诉Angular它应该处理这个新的HTML,然后Angular将为这个标记实例化Angular组件(这就是您链接的问题)

我不认为这是一个限制。 有什么事情是你想做的,但这样做似乎是不可能的吗

编辑

主要代码应如下所示:

我的文件看起来像

。。。
...
我将
附加到div

main(){
打印(“主”);
ng.Injector inj=ngaf.applicationFactory().addModule(新的MyAppModule()).run();
var node=dom.querySelector('#mydiv');
append(new dom.Element.html(“”,验证器:new dom.NodeValidatorBuilder()…allowCustomElement(“web沙盒组件”));
ng.Compiler=inj.get(ng.Compiler);
ng.DirectiveMap DirectiveMap=inj.get(ng.DirectiveMap);
编译器(node.childNodes,directiveMap)(inj,node.childNodes);
}

不,这基本上是一样的,我只是没有完全理解扩展NgShadowDomAware
实现NgShadowDomAware的另一个问题是什么
只是告诉Angular在阴影DOM准备好时调用
onShadowRoot
。这基本上是组件内容准备好与之交互的时间。因此,如果我调用
document.body.appendHtml(“”)angular会自动检测dom更改并用我的组件模板shadow dom填充它吗?不,你必须调用新HTML上的compile来让angular“处理”它。这就是你链接的问题中的答案。谢谢你,这看起来很棒,我回家后会尝试一下,然后接受答案,只针对那些不知道(像我一样)什么是
MyAppModule
以及如何定义的人?