2013-01-16 20 views

Antwort

12

ko.applyBindings ist ein synchroner Anruf.

Es kann Fälle geben, in denen Bindungen speziellen Code haben, um Dinge in einem setTimeout zu tun, aber das ist normalerweise nicht der Fall.

Mit dem Zusatz components in Knockout 3.2 sind die Komponenten asynchron. Mit Knockout 3.3 gibt es eine Option, um Komponenten beim Laden des Viewmodels/der Vorlage synchron darzustellen.

+0

Vielen Dank! – vtortola

+0

Ryan, könnten wir jetzt ein Update zu dieser Antwort bekommen, wenn die Komponenten in 3.2 raus sind? Ich nehme an, dass es nicht synchron ist, wenn das Modul noch nicht geladen wurde, aber ist es synchron, wenn alle Abhängigkeiten bereits geladen wurden? Danke, Mann! –

+3

'ko.applyBindings' selbst ist synchron. Komponenten sind asynchron. In KO 3.3 gibt es eine Option, um Komponenten zu synchronisieren, wenn viewmodel/template geladen ist. –

2

Knockout ist synchron. Nicht nur die ko.applyBindings Funktion als RP Niemeyer bereits gesagt. Wenn Sie einen Wert zu einer beobachtbaren Eigenschaft, die zu einer Ansicht binded ist, können Sie 100% sicher sein, dass

myViewModel.myObservableProperty(newValue); 

Ihre Ansicht aktualisiert wird, nachdem die Ausführung. Tatsächlich ist eine beobachtbare Eigenschaft eine Funktion und wenn Sie einen neuen Wert für Ihre beobachtbare Eigenschaft setzen, rufen Sie einfach eine Funktion mit dem neuen Wert als Parameter auf: Diese Funktion in ihrem Körper löst synchron das Ereignis 'Änderung' aus (i don Ich kenne den Namen des Events nicht genau.

Hoffe es hilft .. sorry, aber mein Englisch ist ein bisschen eingerostet.

Verwandte Themen