Na początku mam pustą tablicę. Po tym naciskam przedmioty do tej tablicy.

Ta tablica jest w komponencie macierzystym i jest przekazywana przez [Wejście] do dziecka Problem polega na tym, kiedy dodam obiekt do Arry'ego, że dziecko nie wykrywa żadnych zmian.

Używam ngonchanges i kiedy rozszerzam tablicę, nie ma kłód ze zmianami :(

 ngOnChanges(changes: SimpleChanges) {
        console.log('my changes', changes);
   }

Więc nie wiem, jak to naprawdę działa, jak mogę nazwać akcją, gdy dziecko zna dane rodzicielskie

1
Przemysław Zamorski 17 luty 2017, 16:13

2 odpowiedzi

Najlepsza odpowiedź

Nie będziesz w stanie zalogować "zmian" za powiedzenie, ale nadal możesz nazwać akcją wewnątrz ngonchanges

Jeśli @Input otrzymuje zaktualizowane dane Ngonchanges będziesz ogień i możesz nazwać tam funkcję. Dla np.

@Input() listings: List; //assume this is array of list

ngOnChanges(changes: SimpleChanges) {

  if(this.listings)
    this.onClick(this.listings[0]); //on changes, call Onclick on 1st list

}

onClick(list){
//do something with list
}
0
tan369 20 luty 2017, 02:41

Wykrywanie zmian, które występują na komponencie dziecka i przekazać go do składnika rodzicielskiego za pomocą koncepcji @Output i EventuMitter

@Output() userName : EventEmitter<string>= new EventEmitter<string>();

Oraz w szablonie składnika nadrzędnego wywołaj powyższą Zmienną

 <child-component (userName)='OnDataChange($event)'></child-component>

Pełne odniesienie

1
Kesavarapu Venkatesh 28 sierpień 2018, 10:17