Come consentire a Angular di propagare le modifiche apportate al modello. In AngularJS questo sarebbe davvero facile, ma non riesco a farlo funzionare in Angular. So che l'intero sistema di rilevamento delle modifiche e la propagazione della vista sono completamente cambiate. In qualche modo, ho bisogno di informare angolare dei cambiamenti. Ma come posso farlo nella pratica.Come aggiornare la vista dopo aver modificato il modello in Angular
Vedere questo pezzo di codice dattiloscritto:
import {Component, View, bootstrap, For} from 'angular2/angular2';
// Annotation section
@Component({
selector: 'app'
})
@View({
template: `
<div *for="#user of users">
{{user}}
</div>
`,
directives: [For]
})
class App {
users:Array<String>;
constructor() {
this.users = [];
this.fillUsersAsync();
}
fillUsersAsync(){
window['fetch']('http://jsonplaceholder.typicode.com/users')
.then(resp => resp.json())
.then(users => users.forEach(user => this.users.push(user.name)))
.then(() => console.log('Retrieved users and put on the model: ', this.users));
}
}
bootstrap(App);
Vedrete che, dopo gli utenti vengono caricate nel modello, la vista non aggiorna.
Sto usando systemjs 0.16, angular 2.0.0-alpha.23.
See this plnkr for the example (attualmente, funziona solo in cromo, come viene utilizzato il nuovo 'prendere' api)
Il tuo secondo collegamento sembra mettermi sulla giusta strada, ma il documento sembra essere obsoleto. Penso di aver bisogno di un qualche tipo di direttiva di form nell'array delle direttive, ma qual'è il nome e come importarlo? – nicojs
@nicojs consiglierebbe di fare come nell'esempio del primo link e se non funziona, fare come nel secondo. Il nome della direttiva per 'form' - direttive: [forms] o forse [Forms]. Importa come hai importato [For] direttiva. Prova questo e segnala per favore, cerco di aiutarti di più. –
Ho provato tutto, ma non funziona. Penso che stiamo guardando nella direzione sbagliata. Per quanto ne so, angular2 usa ancora il controllo sporco per vedere se il modello è cambiato. In qualche modo ho bisogno di informare angular2 che ho aggiornato il modello. O utilizzare un equivalente $ http. – nicojs