2016-04-06 19 views
0

Kodun gösterdiği gibi, childCtrl'de parentCtrl ekleme yöntemini kullanmak istiyorum çünkü parentCtrl, bittiğinde yenilemek için dikkatimi çekmek istiyorum.ChildCtrl içinde denetleyici ile parentCtrl yöntemini sözdizimi olarak kullanmanın en iyi yolu nedir?

$ emit ya da başka bir şey kullanmalı mıyım? (Bunu düşünüyorum, ancak parentCtrl bağlamında add method kullanmak istiyorum).

Şu an kullandığım yol bu, işe yarıyor ama garip buluyorum, bunu yapmanın en iyi yolu nedir?

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 

cevap

0

kapsamları kalıtsal prototipi olmasına rağmen, ngController hiçbir gerçek miras yoktur.

Hizmette "ekleme" yöntemini tanımlamak mümkündür, böylece her iki denetleyici de bunu bağımsız olarak kullanabilir. Daha sonra, "ana denetleyiciyi" yenilemek için eklemeyi tamamladığınızda "controllerA: refresh" gibi bir etkinlik gönderin.