一尘不染

$ on和$广播角度

angularjs

我有一个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 class="button" ng-click="startScanner()">3</li>

我认为可以使用$on和来实现$broadcast,但是我不知道如何在任何地方都找不到示例。


阅读 206

收藏
2020-07-04

共1个答案

一尘不染

如果要$broadcast使用$rootScope

$scope.startScanner = function() {

    $rootScope.$broadcast('scanner-started');
}

然后使用$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中有关此内容的文档

2020-07-04