我使用 angular-strap 和 modal 服务。我尝试在使用参数 onHide 关闭模式时调用一个函数。
var _modal = $modal({
templateUrl: "app/pages/fee/modals/historic/fee.historic.html",
controller: "HistoricController",
controllerAs: "vm",
keyboard: true,
show: false,
onHide: function() {
console.log("Close !");
},
onShow: function() {
console.log("Open !");
}
});
_modal.$promise.then(_modal.show);
但是当我关闭我的模态时没有任何 react ,我在控制台中看不到任何日志(关闭或打开)。
在此先感谢任何能给我一些想法的人!
最佳答案
经过一番调查,发现这是一个有趣的案例。
看来 $modal
在分布式版本中不同步!我的意思是当 angular-strap 被 bower 或 npm 获取时。
onShow
或 onHide
这里
onShow
和 onHide
实际上被触发了!因此,在分布式版本中,modal 似乎与 angular-strap 的其余部分不同步。错误的不是文档(我实际上已经相信了很长时间)而是我们下载的源不是最新的!
因此,如果您想要支持
onShow
等,您必须将 github 存储库中的最新 /modal
合并到您的本地 angular-strap 中。就我个人而言,我不会这样做,因为它会在升级时引起各种问题等等 - 我坚持我原来的答案,但现在至少我知道为什么我必须这样做。根据我的经验,
onShow
等选项的使用是无用的。我在 modal.show
/modal.hide
事件上使用处理程序,这些事件总是被广播。如果您有一个多模态环境(模态超过模态),请“标记”模态以避免混淆。var _modal = $modal({
templateUrl: "app/pages/fee/modals/historic/fee.historic.html",
controller: "HistoricController",
controllerAs: "vm",
keyboard: true,
show: false,
tag: 'myModal'
}
$scope.$on('modal.show', function(e, target) {
if (target.$options.tag == 'myModal') {
//do stuff here
}
})
$scope.$on('modal.hide', function(e, target) {
if (target.$options.tag == 'myModal') {
//do stuff here
}
})
关于javascript - 如何使用angular-strap的模态的onHide选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37464620/