我遇到了ngDialog(https://github.com/likeastore/ngDialog)的问题,我打开了一个对话框,当用户点击一个按钮时,它会弹出另一个模态作为警告。 我想通过一个按钮关闭警告对话框但是当我使用ngDialog.close()时会关闭所有活动模态。
我意识到文档声明如果你没有传递id,那么它就像closeAll()一样,因此我需要给它一个id。因此,当我使用ngDialog.open()时,我给它一个警报ID,然后我使用ngDialog.close(“alert”),但是这仍然会关闭所有模态....
我已经创建了一个试图展示我正在做的事情并且它的行为方式相同... ... http://plnkr.co/0bg1VB7QuEZxIdakfoBr
scope.closeThisDialog = function() {
ngDialog.close("secondDialog");
};
如果你在源头检查它也显示id也没有出现,我怀疑这就是为什么两个模态都在关闭的原因。
任何人都可以了解我做错了什么。
答案 0 :(得分:0)
您不应该覆盖closeThisDialog方法。文档说“.closeThisDialog(value)方法被注入到传递$ scope。”,因为你的指令有自己的scople,你应该能够从父范围中找到注入的方法。因此,您的方法应该更改为如下所示。
scope.closeThisDialog = function() {
//ngDialog.close("secondDialog");
scope.$parent.closeThisDialog();
};
答案 1 :(得分:0)
我无法通过将其传递到范围并加入我的指令来获取对话框ID
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);
};