Ho un componente che funge da barra di ricerca. Può fare richieste API e fornire i risultati al resto dell'app tramite un @Output
e EventEmitter
ma voglio anche che una funzione vada nella direzione opposta. Il componente Barra di ricerca mantiene una cronologia delle sue ricerche e vorrei fornire un modo al componente principale di cancellare la cronologia. Il meglio che posso pensare è in qualche modo chiamare un metodo nella mia barra di ricerca da un componente genitore.Chiamare una funzione in un figlio Componente angolare2?
Il meglio che ho trovato (ma non sono stato in grado di implementare correttamente) è quello di provare a passare un EventEmitter
nella mia barra di ricerca e il bambino si iscrive agli eventi del genitore. Il @Input
non ha completato il binding al momento del costruttore, quindi è difficile farlo effettivamente.
Suppongo che potrei provare e memorizzare la cronologia nel componente padre, ma il motivo per cui la barra di ricerca è un componente è perché apparirà in più punti e questo non si adatta a Separation of Concerns quindi mi sembra meglio mantieni la cronologia nel componente della barra di ricerca.
Come può un componente padre chiamare una funzione su un componente figlio?
Mettere la cronologia delle ricerche in un servizio e il vostro componente figlio possibile associare ai servizi istanza "cronologia" var. Il servizio può avere un chiaro che il genitore può chiamare. Solo un'idea Non ho ancora provato. –
una bella lettura - http://learnangular2.com/viewChild/ –