Ich habe ViewModels, die mit dem Revealing Module Pattern implementiert werden. Ich verwende globale Knockout-Abonnenten, um eine entkoppelte Weitergabe von Daten zwischen diesen zu erreichen. Was ich tue, ist jetzt, eine Instanz eines Ansichtsmodell in einer Master-Ansichtsmodell zu erstellen:Initialisiere Abonnements für ko-scribable bei der Modulerstellung
NameSpace.MasterViewModel = function(){
var viewModel = new viewModel(),
initSubscription = function(){
viewModel.initSubscription();
};
return {
initSubscription: initSubscription
}
}
und initialisiert ein Abonnement in Ansichtsmodell wie folgt aus:
NameSpace.ViewModel = function(){
var data,
initSubscription = function(){
ko.postbox.subscribe("New Data"function(newData){
this.data = newData;
}, this);
};
return {
data: data,
initSubscription: initSubscription
}
}
Dies funktioniert, aber ich möchte wissen, Gibt es eine Möglichkeit, das Abonnement bei der Erstellung von ViewModel zu initialisieren? Damit kann ich eine öffentliche Initialisierungsfunktion vermeiden.
Können Sie 'initSubscription' nicht einfach ausführen, wenn die' ViewModel' Konstruktorfunktion ausgeführt wird? – Jeroen