2016-07-01 37 views
7

在我的Home.html:如何在Angular2中使用@ViewChildren?

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

在我home.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); 
    } 
} 

請幫助。謝謝。

+0

您無法在構造函數中訪問'this.pMessages'。它只在調用'ngAfterViewInit()'時設置。 –

+0

試試這個: console.log(this.pMessage.toArray()[1] .nativeElement); –

回答

2

訪問pMessages時有錯字。 's'丟失。你

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

同時也應該訪問ngAfterViewInit或更高版本viewChildren。在此之前,變量可能爲undefined

+0

您的解決方案無法正常工作。請參閱我的plunkr:http://plnkr.co/edit/yuYQz7Mt1KGfzpWV0GrK?p=preview – Vicheanak