Come posso ascoltare le modifiche su ngModel? Il problema: è che se io collego (cambia) o (clic) evento all'elemento, nella funzione data quando accedo al modello, non è ancora cambiato. Se aggiungo setTimeout di 500 ms di quanto possa fare il modello modificato. Qualche idea su come posso ottenere il vero oggetto cambiato senza setTimeout che è molto brutto? codice nel HTML:Angular 2 ascolta il cambio di modello
<input type="checkbox" (click)="autoJoinToggle()" [(ngModel)]='active.bookmark.autoJoin'> Autojoin
codice nel componente:
console.log(this.active.bookmark.autoJoin) // returns the current value (before the change)
setTimeout(() => {console.log(this.active.bookmark.autoJoin);}, 500); //returns the value after the change
non posso farlo con controllo angolare perché ho bisogno del modello associato, l'oggetto "attivo" non esiste in primo luogo e se voglio aggiornare il valore del controllo dopo aver definito "attivo", devo ascoltare le modifiche sull'oggetto "attivo" (che cambia gli straordinari). Lo stesso problema è con la variabile locale e @ViewChild -> Devo ancora sapere quando cambi "attivi" così aggiorno anche la variabile locale.
Questa soluzione con la variabile locale + ngModel funziona ma nella funzione doSomething imposto esplicitamente 'this.active.autoJoin = cb.checked' che suppongo sia ok per la soluzione temporanea fino a quando il problema non viene risolto –
È possibile aggiungere ' autoJoinToggle (cb) { this.active.bookmark.autoJoin = cb; // fai qualcosa .. } quindi sarà la soluzione completa per qualcun altro da vedere –