2016-04-06 4 views
0

コードが示しているように、ChildCtrlでparentCtrl addメソッドを使用したいのですが、終了時にparentCtrlを更新することに注意してください。コントローラを構文として使用してChildCtrlでparentCtrlメソッドを使用するベストプラクティスは何ですか?

私は$ emitや何かを使う必要がありますか?(私はそれについて考えましたが、parentCtrlコンテキストでaddメソッドを使いたいと思います)。

これは私が今使っている方法ですが、動作しますが、私はそれが奇妙なことを発見します。何をするのが最善の方法ですか?

function myserve() { 
    var self = this; 
    self.saveDefer = function (defer) { 
     self.defer = defer 
    } 
    self.getDefer = function() { 
     return self.defer 
}} 

function parentCtrl($q) { 
    self.workers = ['tom', 'jack']; 
    self.add = function (worker) { 
     add(workder).then(refresh) 
    } 
    self.clickGoChild = function() { 
     var defer = $q.defer(); 
     defer.promise.then(self.add); 
     myserve.saveDefer(defer); 
     $state.go('child'); 
    } 

function childCtrl() { 
    self.doAdd = function() { 
    myserve.getDefer().resolve(self.newWorker) 
}} 
// I want to use add method in parentCtrl 

答えて

0

スコープはプロトタイプ継承されていますが、ngControllerでは実際の継承はありません。

サービスで「追加」メソッドを定義して、両方のコントローラがそれを独立して使用できるようにすることは可能です。次に、「親コントローラ」をリフレッシュするために、追加したときに「controllerA:refresh」のようなイベントを送信してください。

関連する問題