【发布时间】:2015-07-28 08:23:51
【问题描述】:
我在我的应用程序中使用 ngDialog,我想创建一个通用的确认模式,我可以在需要时使用它,确认消息会有所不同。
我的问题:
1- 使用 ngDialog 功能创建指令是个好主意吗?它的设计是什么?
2- ngDialog代码中confirm()和openConfirm()有什么区别。
提前致谢
【问题讨论】:
我在我的应用程序中使用 ngDialog,我想创建一个通用的确认模式,我可以在需要时使用它,确认消息会有所不同。
我的问题:
1- 使用 ngDialog 功能创建指令是个好主意吗?它的设计是什么?
2- ngDialog代码中confirm()和openConfirm()有什么区别。
提前致谢
【问题讨论】:
好吧,回答你的问题,
1 - 你可以为它创建一个指令,有一个scope,比如type,你将确认类型传递给它(即submit用于提交确认,delete用于删除确认)并且指令应该根据您指定的类型呈现消息。
2 - openConfirm()是ngDialog的一种,只能通过确认动作来关闭(不像ngDialog.open()),所以这里没有能力在点击@987654328中的任意位置时关闭对话框@。 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,然后在对话框中查看更新的内容和按钮文本
【讨论】: