javascript - Angular $broadcast 不起作用

标签 javascript angularjs

当我尝试广播事件时:

$scope.selectCategory = function(cat) {
    $scope.$broadcast('Cat', {catID: cat});
}

它不会被$scope.$on捕获:

$scope.$on('Cat', function (event, args) {
    console.log("in");
    $scope.catid = args.catID;
});

问题:我成功地将变量传递到 broadcast 中,但 $scope.on 回调从未被触发。

最佳答案

您需要在 $rootScope 上进行 $broadcast:

$scope.selectCategory = function(cat) {
                                // $location.path('/films/' + cat);
                                $rootScope.$broadcast('Cat', {catID: cat});
                                console.log(cat);
                            }

那么你的代码的其余部分应该没问题。

引用号:Official Angular Guide

关于javascript - Angular $broadcast 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36200586/

相关文章:

javascript - ag-grid Angular 1 onFilterModified事件如何获取参数

javascript - 如何在我的指令范围内只隔离一个值?

javascript - AngularJS Controller As : updating controller field in $interval does not update ng-show

angularjs - 在 AngularJS 应用程序中存储 URL 或 URL 域的最佳方式是什么?

javascript - 如果数字是偶数,如何向下舍入,如果数字是奇数,如何向上舍入?

javascript - 将 eslint 与模板语言结合使用

javascript - 无法创建以数组索引作为键和值的 JS 对象?

javascript - 如何在ace在线代码编辑器中获取行书签事件?

javascript - 基于国家/地区的路由

javascript - TypeScript AMD 到浏览器上的单个文件