Я пытаюсь закрыть и открыть диалоговое окно из представления фактического диалогового контроллера. Что происходит, так это то, что после закрытия диалога/открытия он не будет правильно закрываться снова. Escape работает в некоторых браузерах (но наложение остается), и щелчок по фону может привести к закрытию диалогового окна, но наложение останется (зависит от браузера).Угловой интерфейс диалогового окна - закрытие и повторное открытие из диалогового окна вызывает фон
Вопрос: Как закрыть/открыть диалоговое окно из функции/кнопки/события на контроллере диалога и закрыть диалоговое окно (при бегстве или щелчке фона).
Демонстрация ниже - это просто сложенный образец, который демонстрирует проблему, поскольку я буду делать следующий/prev, и я хотел бы закрыть/открыть эти клики, но у меня есть эта проблема, поскольку вы не можете выйти из нее покадрово.
Вот онлайн демо: http://plnkr.co/h8djNiSlH6c7d8SNzMmb
- Открыть диалог
- Закрыть диалог - работает отлично, за исключением IE (другой вопрос).
- Открыть диалоговое
- Нажмите кнопку в диалоговом окне, чтобы закрыть/открыть заново
- Try, чтобы закрыть диалоговые
Контроллеры:
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, но когда я это делаю, никакого нового диалога никогда открывается, как будто $ dialog внутри PopupCtrl испорчен каким-то образом после его закрытия. – Langdon
Да, я просто не мог понять это. Анимации отлично смотрятся на хроме и т. Д., Но не так много в FF, но это только в сторону – lucuma
. Я закончил тем, что подал заявку и вытащил запрос на проект. – lucuma