2013-01-16 5 views

Répondre

12

ko.applyBindings est un appel synchrone.

Il peut arriver que les liaisons aient un code spécial pour effectuer des opérations dans setTimeout, mais ce n'est généralement pas le cas.

Avec l'ajout de components dans Knockout 3.2, les composants sont asynchrones. Avec Knockout 3.3, il y aura une option pour rendre les composants de manière synchrone si le viewmodel/template est chargé.

+0

Merci beaucoup! – vtortola

+0

Ryan, pourrions-nous avoir une mise à jour sur cette réponse maintenant que les composants sont en 3.2? Je suppose que ce n'est pas synchrone si le module n'a pas encore été chargé, mais est-il synchrone si toutes les dépendances ont déjà été chargées? Merci mec! –

+3

'ko.applyBindings' est lui-même synchrone. les composants sont asynchrones. Dans KO 3.3, il y aura une option pour rendre les composants de synchronisation, si viewmodel/template est chargé. –

2

Knockout est synchrone. Non seulement la fonction ko.applyBindings comme RP Niemeyer déjà dit. Lorsque vous définissez une valeur à une propriété observable qui est binded à une vue, vous pouvez être sûr à 100% que, après l'exécution

myViewModel.myObservableProperty(newValue); 

votre point de vue a été mis à jour. En fait, une propriété observable est une fonction et lorsque vous définissez une nouvelle valeur sur votre propriété observable, vous appelez simplement une fonction avec la nouvelle valeur en paramètre: cette fonction dans son corps déclenche de manière synchrone l'événement 'change' (i don ne sais pas exactement le nom de l'événement).

Espérons que ça aide .. désolé mais mon anglais est un peu rouillé.

Questions connexes