2016-07-01 1 views
7

:私のhome.tsでAngular2で@ViewChildrenを使用するには?私のhome.htmlで

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

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

関連する問題