我正在阅读Material Design中有关mdDialog的详细信息,并且无法理解为什么警报弹出窗口会返回一个承诺。 有人可以通过示例解释mdDialog如何返回承诺吗?
Material Design mdDialog的文档说明如下:
$ mdDialog在应用程序上打开一个对话框,通知用户关键信息或要求他们做出决定。设置有两种方法:简单的promise API和常规对象语法。
答案 0 :(得分:6)
它会返回 if ('matchMedia' in window) {
window.matchMedia('print').addListener(function (media) {
//do before-printing stuff
});
} else {
window.onbeforeprint = function () {
//do before-printing stuff
}
}
,因为您可能希望以不同的方式对未来事件做出反应,例如promise
(解决承诺)和close
(拒绝承诺)。
cancel
会返回承诺,如文档中所述,因此您可以解析或拒绝承诺(如上所述,使用mdDialod.show()
和close
方法cancel
)。
Here is a simple example(打开控制台以查看它如何记录每个事件的相应文本)。
答案 1 :(得分:5)
我认为文档有点含糊不清,但这就是我如何使用它。
baseController中的:
$mdDialog.show({/*modalOptions*/})
.then(function(data) {
console.log(data);
}, function(err) {
console.error(err);
}).finally(function() {
// finally block is optional for cleanup
});
模态控制器中的
$scope.cancel = function () {
$mdDialog.cancel('user pressed canceled');
};
$scope.ok = function () {
$mdDialog.hide({message: 'here is some result data'});
};