У меня проблема с ngDialog (https://github.com/likeastore/ngDialog), у меня открыто 1 диалоговое окно, и когда пользователь нажимает кнопку, он выдает еще один модальный сверху в качестве предупреждения. Я хочу закрыть диалоговое окно с предупреждением с помощью кнопки, но когда я использую ngDialog.close(), он закрывает все активные модалы.
Я понимаю, что в документах указано, что если вы не передаете идентификатор, он действует как closeAll(), поэтому мне нужно указать ему id. Поэтому, когда я использую ngDialog.open(), я даю ему идентификатор предупреждения, а затем я использую ngDialog.close("alert"), однако это все еще закрывает все модальности....
Я создал плункер, чтобы попытаться показать, что я делаю, и он действует так же... http://plnkr.co/0bg1VB7QuEZxIdakfoBr
scope.closeThisDialog = function() {
ngDialog.close("secondDialog");
};
Если вы проверяете источник, он также показывает, что идентификатор тоже не отображается. Я подозреваю, что поэтому оба модала закрываются.
Может ли кто-нибудь пролить свет на то, что я делаю неправильно.
Я обошел, не имея возможности получить идентификатор диалогов, передав его, хотя область действия и наложение моей директивы
scope.openProfileDialog = function() {
var profileDialogScope = scope.$new();
profileDialogScope.customerNumber = scope.customerNumber;
var profileDialog = ngDialog.open({
plain: true,
template: "<profile-dialog customer-number='{{ customerNumber }}' dialog-id='{{dialogId}}'></profile-dialog>",
closeByDocument : false,
name: "profileDialog",
scope: profileDialogScope,
id: "profileDialog"
});
profileDialogScope.dialogId = profileDialog.id;
};
Затем в директиве profile-dialog у меня есть
scope: {
customerNumber : "@",
dialogId: "@"
},
и это находится в разделе ссылок
scope.finish = function() {
ngDialog.close(scope.dialogId);
};
Вы не должны перезаписывать метод closeThisDialog. В документации указано, что метод.closeThisDialog (значение) получает инъекцию в переданную $ scope. ", Так как ваша директива имеет свою собственную команду scople, вы должны иметь возможность найти введенный метод из родительской области. Поэтому ваш метод следует изменить так, как показано ниже.
scope.closeThisDialog = function() {
//ngDialog.close("secondDialog");
scope.$parent.closeThisDialog();
};