【问题标题】:How to use @ViewChildren in Angular2? [duplicate]如何在 Angular2 中使用 @ViewChildren? [复制]
【发布时间】:2016-11-03 20:44:36
【问题描述】:

在我的 home.html 中:

<p #pmessage>msg 1</p>
<p #pmessage>msg 2</p>
<p #pmessage>msg 3</p>
<p #pmessage>msg 4</p>

在我家.ts:

export class HomePage {
    @ViewChildren('pmessage') pMessages;

    constructor() {
         //using first works, result <p>msg 1</p>
         console.log(this.pMessages.first.nativeElement);
         //using last also works, result <p>msg 4</p>
         console.log(this.pMessages.last.nativeElement);
         //How can I get the two in the middle? i.e <p>msg 2</p> and <p>msg 3</p>
         //this isn't working
         console.log(this.pMessage[1].nativeElement); 
         //this either isn't working
         console.log(this.pMessage.1.nativeElement); 
    }
}

请帮忙。谢谢。

【问题讨论】:

  • 你不能在构造函数中访问this.pMessages。仅在调用ngAfterViewInit() 时设置。
  • 试试这个:console.log(this.pMessage.toArray()[1].nativeElement);
  • 试试对我有用的 console.log(this.pMessages._results[1]._elementRef.nativeElement)

标签: angular


【解决方案1】:

访问pMessages 有错字。 's' 不见了。

`console.log(this.pMessages[1].nativeElement);`

您还应该在ngAfterViewInit 或更高版本中访问viewChildren。在此之前,变量可能是undefined

【讨论】:

猜你喜欢
  • 2017-01-04
  • 2017-02-15
  • 2017-08-31
  • 2016-07-17
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-02
相关资源
最近更新 更多