第一次当我点击链接打开对话框时,它只打开一次。但从第二次开始,它分别在第二次,第三次,第四次点击中开启了两次,四次,八次。为什么它多次打开?ngDialog多次打开
HTML代码:header.html中
<li><a href data-ng-click="chatBotFunction()" chat-bot>Chat</a></li>
JS代码:headerCtrl.js
$scope.chatBotFunction = function() {
$rootScope.$emit("CallChatMethod",{});
}
chatCtrl.js
$rootScope.$on("CallChatMethod", function(){
$scope.openChatBox();
});
$scope.openChatBox = function() {
ngDialog.openConfirm({
template: 'modules/main/views/chatBot.html',
controller: 'chatCtrl',
closeByDocument: false,
closeByEscape: false,
showClose: false,
scope: $scope
}).then(
);
};
有人请帮我解决这个问题。提前致谢。
我担心它可能无法正常删除监听器。我相信$ rootScope。$ emit只允许其他$ rootScope侦听器捕获它提到http://stackoverflow.com/questions/26752030/rootscope-broadcast-vs-scope-emit –
试试看.. ..肯定会工作。所有的作品都只在原型概念下工作 – Srigar
你可以检查这个小提琴https://jsfiddle.net/U3pVM/31464/。 $ emit –