我正在使用 AngularJS 1.3.0-beta.2、jQuery 2.1.0、Angular UI 0.11 和我的 Angular UI 工具提示小部件的自定义版本,我希望工具提示中的按钮在单击时关闭工具提示。
关键部分位于 crud_tooltip.js:372:
scope.closePopup = function() {
var trigger = element.prev();
if (scope.mode === 'timeout') {
$timeout(function() {
trigger.triggerHandler('click');
});
}
else {
trigger.triggerHandler('click');
}
};
使用 $timeout 的版本可以工作,但是在单击按钮和看到弹出窗口关闭之间存在明显的延迟。
不使用 $timeout 的版本会报错:[$rootScope:inprog] $apply already in progress。然后它无论如何都会关闭弹出窗口......我不知道为什么。
当用户单击工具提示中的按钮时,如何修改 closePopup(或调用它的 ng-click)以使工具提示立即关闭?
注意:我使用这个 Plunker作为指导,从 Angular UI 的工具提示代码中改编了我的 custom_tooltip.js 代码。我还尝试直接更改 tt_isOpen 值并定义一个新的 crudtooltip-toggle 属性,但都取得了非常有限的成功。