私は複数の関数を持つファクトリを作成しています。構造は次のようなものです:
app.factory('Service', function() {
var Service = {};
Service.method1 = function($scope) {
//logic
return something1
};
Service.method2 = function($scope) {
return something2
};
Service.method3 = function($scope) {
return something3
};
Service.method4 = function($scope, Service) {
var object1 = Service.method1($scope)
var object2 = Service.method2($scope)
var object3 = Service.method3($scope)
//do something with object 1,2,3 and return the result
return result
};
これは、ファクトリをファクトリでファクトリで使用する正しい方法ですか?そして、私はちょうどそのような$スコープを渡すことができるかどうかは分かりません。
これは機能しますか?あなたは何かエラーや何かを得ていますか?この質問を見てみましょう:http://stackoverflow.com/q/22159189/1887101 – Adjit
一般的にあなたのサービスではスコープを使用したくありません。 $ scopeはビューにデータをバインドします。これはコントローラのジョブです。このサービスは、$ http要求の結果と同様に、コントローラが使用するデータを処理するだけです。 – Rob
このコードは、controller1というデータが存在する場所でのみ動作します。しかし、私がcontroller2でこのサービスを使用すると、動作しません。サービス内のデータを永続化する方法はありますか? $ scopeを渡すのは良い方法ではありませんが、すべてのデータがそこに保存されているので、何が最善の方法であるか分かりません。 – Kahsn