我正在阅读 Material Design 中 mdDialog 的详细信息,但不明白为什么警报弹出窗口会返回一个 promise。 有人能通过一个例子来解释一下 mdDialog 如何返回一个 promise 吗?
Material Design mdDialog 的文档如下:
$mdDialog 打开一个对话框,以向用户提供关键信息或要求他们做出决策。有两种设置方法:一个简单的 promise API 和常规对象语法。
mdDialod.show()
返回一个 promise,因此您可以通过 $mdDialog
服务上的 close
和 cancel
方法来解决或拒绝它。
这里有一个简单的示例,如您所请求的那样(打开控制台查看它如何记录每个事件的适当文本)。我觉得文档有点含糊,但是我找到了解决方法。
在 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'});
};
then
。你应该阅读关于 Angular 团队实现的 Promise 的文档:https://docs.angularjs.org/api/ng/service/$q - Roy Miloh