第一次當我點擊鏈接打開對話框時,它只打開一次。但從第二次開始,它分別在第二次,第三次,第四次點擊中開啓了兩次,四次,八次。爲什麼它多次打開?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 –