我在我的应用程序中使用ngDialog并且我想创建一个通用的确认模式,我可以在需要时使用它,确认消息将会有所不同。
我的问题:
1-创建一个带有ngDialog功能的指令是一个好主意,它的设计是什么?
2- ngDialog代码中confirm()和openConfirm()之间的区别是什么。
提前致谢
答案 0 :(得分:20)
好吧,回答你的问题,
1 - 您可以为其创建一个指令,其中scope
为type
,您可以向其传递确认类型(即submit
以提交确认,delete
对于删除确认),指令应根据您指定的类型呈现消息。
2 - openConfirm()
是一种ngDialog,只能通过确认操作来关闭(与ngDialog.open()
不同),因此您无法在此处单击任何地方关闭对话框在DOM
。 confirm()
只是用于关闭对话框的方法,您可以使用此方法关闭对话框并解析打开模式时返回的承诺,因此它可以在对话框中的<button ng-click="confirm()">Confirm</button>
上继续。
希望这有助于你
openConfirm()
打开一个对话框,默认情况下,在按下转义或在对话框窗口外单击时不会关闭。该函数返回一个解析或拒绝的promise,具体取决于对话框的关闭方式。
要解决这个承诺,您的对话框应如下所示:
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
中的类型从confirm
切换为remove
,然后在对话框中查看更新的内容和按钮文字