Ich versuche, einen "Modell" -Dienst zu entwickeln, um meine freigegebenen Daten zwischen meinen Controllern synchronisiert zu halten. ich mit dieser Lösung endete:Besser organisieren AngularJS Modell-Service-Code
myApp.factory('UserService', function() {
return {
data: {
user: {
vm: {
firstName: '',
lastName: ''
},
save: function() {
console.log("save user");
}
},
settings: {
vm: {
theme: '',
language: '',
currency: ''
},
save: function() {
console.log("save user settings");
}
},
save: function() {
console.log("save all");
}
}
};
});
(Geige hier, um besser zu verstehen, wie es funktioniert: http://jsfiddle.net/n36kpuf6/).
Ich denke nicht, dass es eine schlechte Lösung ist, es hält meinen HTML sauber und ich kann auf den Blick sehen, welche Funktionen ich in meinen Controllern verwenden kann, halten sie schlank; Ich bevorzuge es unter anderen Lösungen der Daten-Sharing basierend auf Ereignissen oder $ Scope ...
Gleichzeitig denke ich, dass, vielleicht, es ist ein bisschen verwirrt; Ich suchte also den John-Papa-Styleguide, wie ich ihn besser organisieren kann, aber ich kann keine Beispiele über diese Art von "Modell" -Dienstleistungen finden, nur einfache, auf Methoden basierende Dienste ... also dachte ich, dass ich vermisse etwas.
Kann mir bitte jemand Ratschläge geben, wie ich diesen Service besser organisieren kann?
* "vielleicht ist es ein bisschen verwirrt" * ... warum? Controller sollten schlank sein und Services sollten so viel wie möglich von der Geschäftslogik haben. – charlietfl
gut .. Ich habe Modell und Funktionen in der gleichen Struktur; Wenn meine Funktionen mit "echtem" Code gefüllt wären, würden sie lang und die ganze Struktur nicht so lesbar. – wizzy
Schreiben Sie die Funktionen als benannte Funktionen unterhalb des Objekts und übergeben Sie einfach Funktionsreferenzen an Ihr 'data' Objekt – charlietfl