2015-11-25 24 views
6

Ho allegato un componente di dialogo come direttive per visualizzarlo sulla pagina del componente principale quando faccio clic sul pulsante nella pagina principale (che collega al componente principale). Ecco come ho fattoAngolare 2 - Come accedere alle direttive dal componente

Nel modello

<button id="goToTasksCases" class="btn btn-success btn-lg" (click)="doShowStartNewCase($event)">START A NEW CASE</button> 
<modal-new-case></modal-new-case> 

Nel componente

@Component({ 
    selector: 'case-index' 
}) 
@View({ 
    templateUrl: 'client/app/case/case.index.html', 
    directives : [ModalNewCaseComponent] 
}) 
export class CaseIndexComponent { 
    doShowStartNewCase(event: any) { 
     // how can I access the ModalNewCaseComponent 
    }  
} 

Tuttavia, ho bisogno di impostare alcuni valori per il componente figlio (ModalNewCaseComponent) dopo qualche richiamo dal servizio Rest. Come posso ottenerlo con l'attuale configurazione?

risposta

14

È possibile interrogare la vista dei bambini da:

@Component({ 
    selector: 'case-index', 
    templateUrl: 'client/app/case/case.index.html', 
    directives : [ModalNewCaseComponent] 
}) 
export class CaseIndexComponent { 
    @ViewChild(ModalNewCaseComponent) 
    modal: ModalNewCaseComponent; 

    afterViewInit() { 
     // this.modal will have value 
    } 

    doShowStartNewCase(event: any) { 
     // how can I access the ModalNewCaseComponent 
    }  
} 

È possibile trovare maggiori informazioni su ViewChildren and ContentChildren here.

+0

gesù !! Ho cercato google per l'ultima ora e non ho trovato nulla di simile a questo (in gran parte veniamo con viewManager, elemento ....). Sei un risparmiatore di vita !!!!! –

+1

Sarà spiegato ulteriormente qui https://www.packtpub.com/web-development/switching-angular-2 :-) –

Problemi correlati