【发布时间】:2017-05-11 02:08:42
【问题描述】:
我最近将我们应用程序中的所有模态指令切换到 Angular-ui-Bootstrap 模态。好多了,但是遇到了一种新的模式,它会在鼠标离开而不是取消点击时关闭。
this.leaveTag = (tag) => {
TagHover.off();
};
this.hoverTag = (tag) => {
TagHover.display();
};
上面是调用 TagHover Factory 内部函数的视图逻辑。
下面是工厂,TagHover.display 与我们的其他模态一样工作正常,但我试图用leaveTag > TagHover.off 做的是调用 modal.close。目前还没有工作。
我的问题是如何从我的 tagsPanel 组件调用 TagHoverController 中的关闭功能或 $uibModal 上的 close -> TagsHover Factory? (不使用 $scope 或 $rootScope 事件)
我不是试图从 TagHover Ctrl 范围内调用 close/cancel,而是试图从父范围内调用 close。
const TagHover = angular.module('tickertags-shared')
.controller('TagHoverController', TagHoverController)
.factory('TagHover', factory);
TagHoverController.$inject = [
'TagHover'];
function TagHoverController(
TagHover) {
this.$onInit = () => {
console.log('TagHover onInit')
};
this.cancel = () => this.$close();
}
factory.$inject = ['$uibModal'];
function factory($uibModal) {
const display = () => {
const modal = $uibModal.open({
controllerAs: 'tghov',
bindToController:true,
templateUrl: 'tags/tag_hover.html',
windowClass: 'dash-modal',
resolve: {},
controller: 'TagHoverController'
});
};
const off = () => {
$uibModal.close({});
};
return {
display,
off
}
}
module.exports = TagHover;
这里是文档https://angular-ui.github.io/bootstrap/#/modal
open 方法返回一个模态实例,一个具有以下属性的对象:
close(result) (Type: function) - 可以用来关闭一个模态,传递一个结果。
我还注销了$uibModal 对象,我只看到一个打开的函数,没有关闭:(
【问题讨论】:
-
使用 $uibModalInstance.close() 代替 $uibModal.close()
-
嗯,我刚试过...我注入了
$uibModalInstance,但得到了未知的提供者:(
标签: javascript angularjs angular-ui-bootstrap angular-ui angularjs-service