是否可以定义angular-dart组件,然后以编程方式创建该组件的实例并将其添加到您的网页?我希望可能有类似的东西:
import 'package:web_sandbox/web_sandbox.dart';
import 'package:angular/angular.dart' as ng;
void main() {
document.body.appendHtml('<web-sandbox-component></web-sandbox-component>');
var node = document.body.query('web-sandbox-component');
ng.compile(node);
}
是否以编程方式创建一个角度Web组件并将其添加到页面中,可能就像上面的伪示例一样,如果是这样的话?
答案 0 :(得分:3)
我不认为Angular可以做到这一点。
您可以将HTML标记<web-sandbox-component>
添加到DOM中,并告诉Angular它应该处理这个新的HTML,然后Angular将为此标记实例化Angular组件(这就是您链接的问题)。 / p>
我不认为这是一个限制。 你有什么想做的事情似乎不可能这样吗?。
修改强>
您在main中的代码应如下所示:
我的文档看起来像
...
<body>
<div id="mydiv"></div>
...
</body>
我将<web-sandbox-component>
追加到div
main() {
print('main');
ng.Injector inj = ngaf.applicationFactory().addModule(new MyAppModule()).run();
var node = dom.querySelector('#mydiv');
node.append(new dom.Element.html('<web-sandbox-component></web-sandbox-component>', validator: new dom.NodeValidatorBuilder()..allowCustomElement("web-sandbox-component")));
ng.Compiler compiler = inj.get(ng.Compiler);
ng.DirectiveMap directiveMap = inj.get(ng.DirectiveMap);
compiler(node.childNodes, directiveMap)(inj, node.childNodes);
}