我有一个footerController和codeScannerController具有不同的视图。
angular.module('myApp').controller('footerController', ["$scope", function($scope) {}]); angular.module('myApp').controller('codeScannerController', ["$scope", function($scope) { console.log("start"); $scope.startScanner = function(){...
当我<li>在footer.html中单击时,应该在codeScannerController中得到此事件。
<li>
<li class="button" ng-click="startScanner()">3</li>
我认为可以使用$on和来实现$broadcast,但是我不知道如何在任何地方都找不到示例。
$on
$broadcast
如果要$broadcast使用$rootScope:
$rootScope
$scope.startScanner = function() { $rootScope.$broadcast('scanner-started'); }
然后使用$scope您控制器的接收:
$scope
$scope.$on('scanner-started', function(event, args) { // do what you want to do });
如果愿意,可以在以下情况下传递参数$broadcast:
$rootScope.$broadcast('scanner-started', { any: {} });
然后接收它们:
$scope.$on('scanner-started', function(event, args) { var anyThing = args.any; // do what you want to do });
范围docs中有关此内容的文档。