2015-05-13 31 views
5

Bu denetleyicide tek bir yöntem bulunan ortak bir denetleyicim var. Bu denetleyici yöntemini başka bir hizmetten çağırmam gerekiyor. Mümkün mü.Başka bir Servis'ten AngularJs denetleyici yöntemini çağırın

Benim örnek kod: Bu benim Root Controller ve onun ihtiva fonksiyonu myFunction

app.controller('rootController', function($rootScope,$scope,$on) { 

    $scope.$on("func_call", function(event, args) { 
    var p = args.myParam; 
    // do something 
}) 

    }); 

Bu, bu hizmetimden kök denetleyicisi işlevi çağırmanız gerekir, benim hizmettir denilen

app.factory('anotherService', function($rootScope,$broadcast){ 

     $rootScope.$broadcast("func_call", { myParam: {} }); 
    }); 

Root Controller fonksiyonunu $rootScope.myFunction ("called") no'lu telefondan aramayı denedim ama çalışmadı. Herhangi bir

+0

niçin denetleyici yöntemini? Hizmetinden aramak istiyoruz? Servis denetçisi –

+0

'dan hizmet yöntemini çağırıyoruz. Hizmetin herhangi bir denetleyicisi olmadığından. Bu yüzden kontrol fonksiyonunu servisten çağırmam gerek. mümkün mü? – Team

+0

Eklediğim cevaba bakın .. Teşekkürler :) –

cevap

1

hep $broadcast, $emit ve

deneyin $on denetleyicisi alım fonksiyonu dinleyici kurmak $rootScope docs

üzerinden gidiyor kullanabilirsiniz hizmetinden kök denetleyici işlevi çağırmak için iyi bir yol önermek edin:

$scope.$on("func_call", function(event, args) { 
    var p = args.myParam; 
    // do something 
}) 

ve hizmetinde diyoruz:

$rootScope.$broadcast("func_call", { myParam: {} }); 
+0

Parametreyi bu işlev çağrısı aracılığıyla hizmetten nasıl geçebilirim? – Team

+0

Cevabı düzenledim. – svarog

+0

sağladığım linkte hepsi $ $ ile kullanılmaya çalıştım ama AngularJs enjektör ERROR alıyorum. Bu sorunu nasıl çözebiliriz? – Team

İlgili konular