使用ngDialog确认模态

时间:2015-07-28 08:23:52

标签: angularjs ng-dialog

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

我的问题:

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

2- ngDialog代码中confirm()和openConfirm()之间的区别是什么。

提前致谢

1 个答案:

答案 0 :(得分:20)

好吧,回答你的问题,

1 - 您可以为其创建一个指令,其中scopetype,您可以向其传递确认类型(即submit以提交确认,delete对于删除确认),指令应根据您指定的类型呈现消息。

2 - openConfirm()是一种ngDialog,只能通过确认操作来关闭(与ngDialog.open()不同),因此您无法在此处单击任何地方关闭对话框在DOMconfirm()只是用于关闭对话框的方法,您可以使用此方法关闭对话框并解析打开模式时返回的承诺,因此它可以在对话框中的<button ng-click="confirm()">Confirm</button>上继续。

希望这有助于你

更新

  

openConfirm()   打开一个对话框,默认情况下,在按下转义或在对话框窗口外单击时不会关闭。该函数返回一个解析或拒绝的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,就可以使用指令控制器

这是一个demo,向您展示如何使用

类型

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