2016-07-01 13 views
7

Nel mio home.html:Come utilizzare @ViewChildren in Angular2?

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

Nei miei 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); 
    } 
} 

prega di aiuto. Grazie.

+0

Non è possibile accedere a 'this.pMessages' nel costruttore. Viene impostato solo quando è stato chiamato 'ngAfterViewInit()'. –

+0

provare questo: console.log (this.pMessage.toArray() [1] .nativeElement); –

risposta

2

Errore di accesso all'pMessages. Manca la "s"

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

Inoltre si dovrebbe accedere viewChildren in ngAfterViewInit o poi. La variabile potrebbe essere undefined prima di quella

+0

La tua soluzione non funziona. Si prega di consultare il mio plunkr: http://plnkr.co/edit/yuYQz7Mt1KGfzpWV0GrK?p=preview – Vicheanak

Problemi correlati