2016-04-14 12 views
9

Od oficjalnego documentation. ViewChild:Co to jest ViewChild w Angular2?

Configures a view query. 

View queries are set before the ngAfterViewInit callback is called. 

Wyjaśnienie jest bardzo minimalny, a ja nadal nie bardzo rozumiem, co się go stosuje.

Rozważ to example z bloga, który znalazłem.

zabierając @ViewChild(TodoInputCmp) nie mają wpływu na kod wewnątrz TodoInputCmp

Czy ktoś może mi dać pewne wyobrażenie?

Dzięki

+0

związane: http://stackoverflow.com/questions/34326745/whats-the -difference-between-viewchild-and-contentchild – drewmoore

+0

[Przykład] (https://plnkr.co/edit/78FjnOGEjE0g48JV1ebw?p=preview), o którym wspomniałeś, nie ma żadnego efektu tylko dlatego, że ktoś zapomniał usunąć nieużywany kod. –

Odpowiedz

12

Dostarcza odniesienie do elementów lub elementów w widoku:

@Component({ 
    ... 
    directives: [SomeComponent], 
    template: ` 
    <div><span #myVar>xxx</span><div> 
    <some-comp></some-comp>` 
}) 
class MyComponent { 
    @ViewChild('myVar') myVar:ElementRef; 
    @ViewChild(SomeComponent) someComponent:SomeComponent; 

    ngAfterViewInit() { 
    console.log(this.myVar.nativeElement.innerHTML); 
    console.log(this.someComponent); 
    } 
} 

Zmienne nie są inicjowane przed ngAfterViewInit()

5

ViewChild dekorator jest używany w celu uzyskania dostępu do komponentu dzieci, znaleziono w matrycy, dzięki czemu można uzyskać dostęp do właściwości i metod.