Ich habe gesehen, dass Modelle als Funktionen deklariert sind. Ich schätze, das liegt daran, dass es einfacher ist, auf andere Funktionen und Variablen innerhalb des Closings zurückzukommen? Wenn es sich um ein einfaches Schlüssel/Wert-Objekt handelt, können Sie mit 'this' nicht auf andere Variablen/Funktionen verweisen.Was sind die Unterschiede zwischen der Deklaration eines KnockoutJS-Modells mit selbstaufrufender Funktion?
Es gibt jedoch zwei Möglichkeiten, das Modell mithilfe einer Funktion zu deklarieren.
var vm1 = function() {
this.mydata = ko.observable(null)
}
ko.applyBindings(new vm1());
Und dann auch eine selbst Aufruf Funktion:
var vm2 = function() {
this.mydata = ko.observable(null)
}();
ko.applyBindings(vm2);
Was ist der Unterschied zwischen den zwei Ansätzen? Was ich finde, ist, dass die Verwendung des zweiten Ansatzes Probleme verursacht, weil ich nicht sicher bin, ob KO die Eigenschaften in vm2 "sehen" kann, da sie privat sind. Aber wie sind die Eigenschaften in vm1 sichtbar?
Ich frage mich auch, ob das "Enthüllungsmodul" -Muster mit KO-View-Modellen kompatibel ist und ob ich das stattdessen verwenden soll?
Oh, Moment mal, macht das. * Effektiv öffentliche Eigenschaften? – jaffa