我們正在嘗試使用phonegap onsen和angularJS開發應用程序。來自不同控制器的angularJs調用函數
我想從不同的控制器調用一個函數。我已經看到很多關於如何做到這一點的文檔,如this
但是由於某些原因,它不適用於我。這是我的代碼到目前爲止。
module.run(function ($rootScope) {
$rootScope.$on('some-event-here', function (event, data) {
console.log('1');
$rootScope.$emit('show-dialog-of-some-event', data);
//I also tried
//$rootScope.$broadcast('show-dialog-of-some-event', data);
});
});
module.controller('controller1', ['$scope', '$http', function($scope, $http) {
$scope.proceed = function() {
console.log('0');
$scope.$emit('some-event-here', {});
}
}]);
module.controller('controller2', ['$scope', '$http', function($scope, $http) {
$scope.$on('show-dialog-of-some-event', function (event, data) {
console.log('2');
ons.createDialog('some-dialog.html').then(function(dialog) {
//some code here
});
});
}]);
它顯示在控制檯'0'和'1'上,但它不顯示'2'。
這可能是一個簡單的問題,但我似乎無法找到我的代碼的問題。
在此先感謝。
嘗試使用'$ rootScope。$ broadcast'而不是'$ emit'在你的運行函數中 –
@NexusDuck我已經試過了。 $ rootScope。$ broadcast('show-dialog-of-some-event',data); - 仍然不起作用 – Eddie
奇怪,我會做一個plnkr並測試它。順便說一句,我沒有看到你在這個問題中引用的其他模塊,這是所有相關的代碼? –