2016-05-19 1 views
0

私はAngularで非常に新しく、問題を分かち合いたいと思っています。もし誰かが私を助けたり、私に案内してくれたら、 は最高の解決策を見つけ出します。Angularでサービスを介して異なるコントローラ間でモデルを共有する方法は?

サービスまたはファクトリを介して異なるコントローラ間で約束されたデータを共有するにはどうすればいいですか?

私はそれが適切

service('Service', function(...) { 

    function ----------(....) { 
     return myasyncfunction('..............') 
     .then(function(data) { 
      return data; 
     }); 
    } 

    function getSomething { 
     return some operation with DATA; 
    } 


    return { 
    getSomething: getSomething 
    } 

} 

.controller('CtrlA', function (...) { 

    Service.getSomething ---> Doesn't work if don't put a delay 

} 

.controller('CtrlB', function (...) { 

} 

私がこれを行うためのパターンを存在している必要があり確信して、とにかくタイムアウトまたは類似

どちらか、それはより多くの可能EMITや放送であれば、私は避けるべきだと思いますコードは常にデータを取得するために私が約束を必要としているという事実に依存しています。私は 私は腕時計、タイムアウトまたはemit/broadcast &を必要としないアーキテクチャを作成する適切な方法を知っていません。 は、私は別の方法で行うことが可能である疑いがある

約束によって返さ

+0

サービスを使用して、すべてのコントローラ –

答えて

0

私も(自分のコントローラ内の)約束を.then使用する必要があります、事前に一度だけ

Thxを呼び出さなければなりませんのようなサービス - :

Service.getSomething.then(function(result){ 
    //your promise resolve code 
    },function(error){ 
    //your promise reject code 
    }) 
関連する問題