So aktualisieren Sie die Ansicht nach einer änderung das Modell in Eckig?
Wie kann ich Eckige propagieren der änderungen habe ich am Modell. In AngularJS das wäre ja wirklich zu einfach, aber ich kann nicht scheinen, um es zu bekommen arbeiten in Eckig. Ich kenne den gesamten change-detection-system und view-Vermehrung ist völlig verändert. Irgendwie, ich brauche zu informieren, Winkel-änderungen. Aber wie kann ich dies in der Praxis.
Sehen, dieses Stück Typoskript-code:
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);
Werden Sie sehen, dass, nachdem der Benutzer in das Modell geladen, die Ansicht nicht aktualisieren.
Ich bin mit systemjs 0.16, Winkel-2.0.0-alpha.23.
Sehen Sie diese plnkr für das Beispiel (derzeit funktioniert nur in chrome, als die neue 'fetch' - api verwendet wird)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich das Problem. Anscheinend, es ist ein bug behoben in der alpha-27. Finden Sie in diesem bug-report: https://github.com/angular/angular/issues/1913
Angular2 verwendet zonejs zu wissen, Wann Sie anfangen die digest-Zyklus (das dirty-checking und die Ansicht aktualisieren). Wie jetzt, zonejs wird nicht ausgelöst, nachdem das abrufen von Daten mit dem neuen Fenster.fetch().
Austausch der Fenster['Holen'], Zeile, um diese behoben das Problem für mich:
Zone.bindPromiseFn(window['fetch'])('http://jsonplaceholder.typicode.com/users')
Daten zu aktualisieren auf view in AngularJS2, die Sie verwenden sollten Formen. Lesen Sie dazu an dieser Seite oder sehen Sie mehr details hier.
Wenn ich verstehen, Formulare richtig, Sie sollten ändern Sie Ihre @View Teil wie dieses:
--editiert
Versuchen Sie dies:
Ich bin nicht sicher, dass meine Antwort völlig korrekt ist, aber ich kann nicht finden, mehr Informationen. Experimentieren Sie mit diesem code und möge die macht mit Euch sein! 🙂
Außerdem fand ich dieser link, sehr informativ.
So wie ich das verstehe, wenn im constructor initialisieren Sie
users
variable übernew Control(some data)
und dann in view-template können Sie den Zugriff auf diese Daten wie in dieser -{{users.value}}
.Wenn es nicht klappt: versuchen Sie das gleiche, aber mit sehr einfachen Daten, z.B. die Verwendung von string anstelle eines Arrays.
Und dieses video wird hilft unserstand Formen in ng2.
forms
- Richtlinien: [Formulare] oder vielleicht [Formen]. Importieren Sie es wie Sie importieren [Für] Richtlinie. Dieses versuchen und Bericht bitte, ich versuche zu helfen, Sie mehr.Nur beantwortet es hier Angular2 Ansicht Nicht Ändern, Nachdem Die Daten Aktualisiert
Im Grunde genommen gab es einen bug in der Beta 2.0.0-beta.1.
Hoffe, es hilft!
Ng-Präfixe sind zurück.
For
gewordenngFor
für Angular2 Versionen alpha-24+.Dann verwenden
*ng-for=#user of users"
in der Vorlage.Kasse die ngFor docs oder ein funktionierendes Beispiel
_ngZone.run()
. Siehe angular.io/docs/js/latest/api/core/NgZone-class.html