javascript - AngularJS : How to avoid - Broadcast event called from app. js 被触发两次?

标签 javascript android jquery angularjs

在 app.js 中,我在 $rootScope 上广播的回调函数中使用,以在第二个 Controller 上触发方法。

function onSuccess(state) {
          if (state != true) {
          } else {
              $rootScope.$broadcast('proximityCatched', null);
          }
          //console.log('Proximity state: ' + (state ? 'near' : 'far'));
      };

在 Controller 上我有监听器:

$rootScope.$on('proximityCatched', function () {
            alert("TEST");
        });

问题是alert("TEST");被触发两次。

我尝试使用 stopPropagation 或在正常范围内使用广播来找到任何可行的解决方案,但没有运气。

请问我该如何以正确的方式做到这一点?

感谢您的建议。

编辑:路由器配置:

.config(function($stateProvider, $urlRouterProvider) {
      $stateProvider
          .state('game', {
              url: "/game",
              templateUrl: "templates/game.html",
              controller: "GameCtrl"
          })
          .state('home', {
              url: "/home",
              templateUrl: "templates/home.html",
              controller: "HomeCtrl"
          })
        // if none of the above states are matched, use this as the fallback
        $urlRouterProvider.otherwise('/home');
    });

最佳答案

如果您连接 Controller 两次,它将调用两次。

检查您是否在routes配置和html中附加 Controller (通过使用ng-controller),如果您附加两次(使用两种方式),请删除一个。

关于javascript - AngularJS : How to avoid - Broadcast event called from app. js 被触发两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30975727/

相关文章:

javascript - ReactErrorUtils.invokeGuardedCallback 中的 React 在 IE 浏览器中重复触发事件

一系列 null/未定义检查的 Javascript 最佳实践

javascript - 复选框用检查信息填充字段

android - 查找 Polyline 的哪一部分包含在另一条 Polyline 中的高效算法

javascript - $ 未在 mocha chai 测试脚本中定义

javascript - HTML 页面上带有图像(带有黑色透明覆盖的框)的 jQuery 弹出窗口

javascript - 屈服于 browserify 和 NPM? (咕噜构建)

Java检查文件大小是否大于0

java - 如何停止在android中的 Activity 应用程序窗口中显示应用程序

javascript - 将输入字段附加到 li 元素的末尾。 jQuery