【发布时间】:2015-11-20 20:07:25
【问题描述】:
我正在尝试在我的 Angular 2 组件中声明的元素上调用函数。
问题是我不知道如何从我的 JS 代码中检索元素。
如果我可以将模板中的元素传递给 JS 代码,它可以工作,但是
使用 document.querySelector 不会返回任何内容。
示例代码(plunk):
@View({
template: `
<div>
<span id="p1">{{name}}</span>
<span #p2>{{name}}</span>
</div>
`,
encapsulation: ViewEncapsulation.Native
})
export class Person {
sayHello(e) {
p1 = document.querySelector('p1');
console.log('p1:', p1)
p2 = document.querySelector('p2');
console.log('p2:', p2)
alert('VanillaId: ' + (p1 ? p1.innerHTML : 'null') +
'\nAngularId: ' + (p2 ? p2.innerHTML : 'null'));
}
}
我怀疑它与shadow dom有关,但我不知道如何
获取影子根并使用它来执行查询。 this 好像没有暴露
任何对访问 dom 有用的东西。
【问题讨论】:
标签: web-component angular shadow-dom