Questa potrebbe essere la domanda ripetuta ma la soluzione che ho trovato per questo problema non funziona nel mio caso, ecco perché sto postando la domanda.
ho seguito servizio:
appRoot.service('MyService', function($rootScope) {
var Messenger = {
Temp: "",
TempId:"",
tempMethod: function(Id) {
TempId = Id;
$rootScope.$broadcast('FirstCtrlMethod');
}
};
return Messenger ;
});
In secondo controller:
appRoot.controller('SecondCtrl', function ($scope, $location, MyResource, NotificationService, MyService) {
$scope.invokeFirstCtrl= function() {
var Id = '2';
MyService.tempMethod(Id);
});
In primo controller:
appRoot.controller('FirstCtrl', function ($scope, $compile, $filter, $modal, $sce, $location, NotificationService, MyService) {
$scope.$on('FirstCtrlMethod', function() {
alert('I am from frist controller');
});
});
Problema: La riga "$ rootScope. $ Broadcast ('FirstCtrlMethod');" è in esecuzione come previsto ma non causa l'evento "$ scope. $ On ('FirstCtrlMethod', function() {.." nel primo controller. Ho usato i servizi di differenziazione in molti posti in la mia app nello stesso modo e sono workig bene, non sto capendo il motivo per cui non funziona qui.
sono entrambi controller di istanziato quando si esegue il test questo ?? – harishr
Hai provato '$ emit' invece di' $ broadcast'? o semplicemente '$ rootScope. $ on' – Dylan
Yah Ho provato entrambi. $ emit e $ rootScope. $ on ma non funziona ancora –