使用 ngDialog 确认模式

confirm modal using ngDialog

我在我的应用程序中使用 ngDialog,我想创建一个通用的确认模式,我可以在需要时使用它,确认消息将有所不同。

我的问题:

1- 创建具有 ngDialog 功能的指令是个好主意吗?它的设计是什么?

2- ngDialog 代码中 confirm() 和 openConfirm() 有什么区别。

提前致谢

好了,回答你的问题,

1 - 你可以为它创建一个指令,有一个 scope,比如你传递确认类型的 type(即 submit 用于提交确认,delete 用于删除确认)并且该指令应根据您指定的类型呈现消息。

2 - openConfirm()是ngDialog的一种,只能通过确认操作来关闭(不像ngDialog.open()),所以你没有能力在这里关闭对话框单击 DOM 中的任意位置。 confirm() 只是您用来关闭对话框的方法,您使用此方法关闭对话框并解决打开模态时返回的承诺,因此它可以在您的对话框中继续 <button ng-click="confirm()">Confirm</button>

希望对您有所帮助

更新

openConfirm() Opens a dialog that by default does not close when hitting escape or clicking outside the dialog window. The function returns a promise that is either resolved or rejected depending on the way the dialog was closed.

要解决承诺,您的对话框应该是这样的:

使用 ngDialog 控制器

ngDialog.openConfirm({
    template: '<div></div>',
    controller: ['$scope', function($scope) { 
      // Controller logic here
    }]
}).then(function (success) {
    // Success logic here
}, function (error) {
    // Error logic here
});

带指令控制器

ngDialog.openConfirm({
    template: '<div></div>',
    scope: $scope, // <- ability to use the scopes from directive controller
}).then(function (success) {
    // Success logic here
}, function (error) {
    // Error logic here
});

只要在对话框中传递scope: $scope就可以使用指令控制器

这里 demo 向您展示了如何使用 type

尝试将 index.html 中的类型从 confirm 切换为 remove 并在对话框中查看更新的内容和按钮文本