【发布时间】:2015-06-22 08:53:58
【问题描述】:
在 app.js 中,我使用 $rootScope 上的回调函数广播来获取第二个控制器上的触发方法。
function onSuccess(state) {
if (state != true) {
} else {
$rootScope.$broadcast('proximityCatched', null);
}
//console.log('Proximity state: ' + (state ? 'near' : 'far'));
};
在控制器上我有监听器:
$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');
});
【问题讨论】:
-
您是否在路由和 html 中附加了两次控制器?
-
你认为我刚刚添加的路由器有问题吗?这里提到了控制器,在 index.html 和 ng-init
-
好的,你在 html 中使用
ng-controller吗? -
是的,我应该删除它吗?
-
是的,这就是它调用两次的原因
标签: javascript android jquery angularjs