【发布时间】:2017-12-17 16:59:31
【问题描述】:
我无法获取自定义元素的 nativeElement 的引用。我有一个这样的模板:
<div #testone>
<my-feature-cmp><my-feature-cmp>
<my-feature-cmp><my-feature-cmp>
<my-feature-cmp><my-feature-cmp>
<div>
用于访问的代码: @ViewChild('testone') el: ElementRef;
当我这样做时,我得到了元素引用 -> console.log(this.el.nativeElement)
第二种模板
<my-feature-cmp></my-feature-cmp>
<my-feature-cmp></my-feature-cmp>
<my-feature-cmp></my-feature-cmp>
用于访问的代码:
@ViewChildren(MyFeatureCmp) el: MyFeatureCmp;
执行此操作时出现本机元素错误 ->
console.log(this.el.nativeElement)
当我这样做时,我得到了类引用并且没有 nativeElement ->
console.log(this.el)
console.log(this.el.toArray())
问题是如果我想更改标签属性,如何访问自定义组件的本机元素。其次,无论我以何种方式访问它们,如果我手动更改自定义组件的属性,它是否会在更改后也被检测为更改?
【问题讨论】:
-
如果我手动更改属性 - 你到底改变了什么,你希望框架选择什么?
-
what exactly do you change。 1)如果我访问组件类实例的对象说其中的变量会自动检测到变化吗? 2)如果我得到<my-feature-cmp>的 cmp 元素引用,那么我可以在某处破坏某些东西的情况下做到这一点吗?this.el.first.nativeElement.someatrribute = 'somevalue'或this.el.first.nativeElement.style.color = '#ccc'或添加事件侦听器(somecustomevent)即时?
标签: javascript angular angular-components viewchild