如果此问题重复,请抱歉。
最近我发现jQuery在调用使用DOM id传递的函数后会添加全局JavaScript变量,例如$('<div id="foo" />').appendTo()
/ $.html('<p id="bar" />)
。该变量指向具有相同id的DOM对象,显示为these lines:
<body>
<div id="container"></div>
<!-- include jquery.js -->
<script>
typeof(foo); // "undefined"
typeof(bar); // "undefined"
$('<div id="foo"></div').appendTo('#container');
$('#foo').html('<div id="bar"></div>');
typeof(foo); // "object"
typeof(bar); // "object"
foo instanceof HTMLDivElement; // true
bar instanceof HTMLDivElement; // true
foo === $('#foo')[0]; // true
</script>
</body>
API文档中是否引入了此功能?究竟发生了什么?
问候!
答案 0 :(得分:0)
感谢@RoryMcCrossan,它与jQuery无关。
@ViewChild('target', {read: ViewContainerRef}) target;
constructor(private resolver: ComponentResolver) {}
createComponent() {
this.resolver.resolveComponent(MyComp).then(
(factory:ComponentFactory<any>) => {
var cmpRef = this.target.createComponent(factory);
var cmp = cmpRef.instance;
});
}
查看此问题的详细信息Do DOM tree elements with ids become global variables?