1
我想从实际对话框控制器的视图中关闭并重新打开一个对话框。结果发生的是在对话框关闭/打开后,它不会再正常关闭。在某些浏览器上可以使用Escape(但叠加层仍然存在)并单击背景可能会导致对话框关闭,但覆盖层将保留(依赖于浏览器)。Angular UI对话框 - 从对话框中关闭并重新打开导致背景
问题:如何关闭/重新打开对话框控制器上某个功能/按钮/事件的对话框,以及对话框的关闭是否正常工作(在退出或单击背景上)。
下面的演示只是一个简化的示例,演示了这个问题,因为我将在下一个/ prev中执行操作,并且希望关闭/打开这些单击操作,但遇到此问题无法退出模态。
这里是在线演示:http://plnkr.co/h8djNiSlH6c7d8SNzMmb
- 打开对话框
- 关闭对话框 - 工作正常,除了IE(另一个问题)。内部对话
- 打开对话框
- 点击按钮,关闭/重新
- 尝试关闭该对话框
控制器:
function PopupCtrl($scope, $dialog, dialog, item, Utils) {
$scope.items = Utils.getItems();
$scope.item = item;
$scope.reOpen = function (item) {
item = $scope.items[1];
dialog.close();
var d = $dialog.dialog({
dialogFade: true,
backdropClick: true,
dialogOpenClass: 'modal-open',
resolve: {
item: function() {
return angular.copy(item)
}
}
});
d.open('dialog.html', 'PopupCtrl');
};
}
function MainCtrl($scope, $window, $dialog, $location, $timeout, Utils) {
$scope.items = Utils.getItems();
$scope.openDialog = function (item) {
item = $scope.items[0];
var d = $dialog.dialog({
dialogFade: true,
dialogOpenClass: 'modal-open',
resolve: {
item: function() {
return angular.copy(item)
}
}
});
d.open('dialog.html', 'PopupCtrl');
};
}
我和角度引导v0.2.0尝试这个和v.0.3.0所以它是一个错误,或者我缺少关于如何编码逻辑的信息。
也就是说一些野生的东西。我认为有一些范围冲突(如PopupCtrl超出了范围dialog.close()),所以我试图将对话框打开代码移动到一个服务,并在setTimeout后调用它,但是当我这样做时,没有新的对话框打开,就好像PopupCtrl中的$ dialog在关闭之后以某种方式被污染了一样。 – Langdon 2013-05-01 14:20:30
是的,我只是想不出来。这些动画在chrome和ie中看起来很好,但在FF中却不是那么多,但这只是一个问题 – lucuma 2013-05-01 14:25:38
我最终提出了一个问题并且对该项目提出了请求。 – lucuma 2013-05-01 22:10:52