私の共有データをコントローラ間で同期させた状態に保つための "モデル"サービスを開発しようとしています。 私はこの解決策になってしまった:AngularJSモデルサービスコードを整理する
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");
}
}
};
});
(より良い、それがどのように機能するかを理解するためにここにフィドル:http://jsfiddle.net/n36kpuf6/)。
私はそれが悪い解決策ではないと思っています。私のHTMLをきれいに保ちます。そして、コントローラでどのような機能を使用できるかを一目瞭然に見ることができます。私はイベントや$スコープに基づいてデータ共有の他のソリューションの中でそれを好む...
同時に、私は多分それは少し混乱していると思っています。だから私はJohn Papaのスタイルガイドを調べて、どのように整理して整理しているのか見ていましたが、このような "モデル"サービスについての例は見つけられず、メソッドに基づく単純なサービス...ということになりました何か。
このサービスをより整理しやすくする方法についてアドバイスをいただけますか?
*「おそらく、ちょっと混乱している」* ...なぜですか?コントローラはリーンでなければならず、サービスにはできる限り多くのビジネスロジックが必要です。 – charlietfl
まあ、私は同じ構造のモデルと関数を持っています。私の関数が "実"コードで満たされていれば、それらは長くなり、全体の構造はあまり読みにくくなります。 – wizzy
名前付き関数の関数をオブジェクトの下に記述し、関数参照を 'data'オブジェクトに渡すだけです – charlietfl