8

I am using ngDialog in my application and I would like to create a generic confirm modal , which I can use whenever I need , the confirm message is going to be different .

My questions :

1- Is creating a directive with the ngDialog functionality a good idea and what is its design ?

2- what is the difference between confirm() and openConfirm() in ngDialog code .

Thanks in advance

4

1 回答 1

20

嗯,回答你的问题,

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

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

希望这对你有帮助

更新

openConfirm() 打开一个对话框,默认情况下在点击退出或单击对话框窗口外时不会关闭。该函数返回一个promise,根据对话框关闭的方式解决或拒绝该promise。

为了解决这个承诺,你的对话应该是这样的:

使用 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在对话框中传递,就可以使用指令控制器

这是一个演示,向您展示如何使用类型

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

于 2015-07-28T08:35:58.637 回答