如何通过angularjs Material Design中的对话框弹出回传承诺?

时间:2015-04-28 19:10:30

标签: angularjs material-design

我正在阅读Material Design中有关mdDialog的详细信息,并且无法理解为什么警报弹出窗口会返回一个承诺。 有人可以通过示例解释mdDialog如何返回承诺吗?

Material Design mdDialog的文档说明如下:

  

$ mdDialog在应用程序上打开一个对话框,通知用户关键信息或要求他们做出决定。设置有两种方法:简单的promise API和常规对象语法。

2 个答案:

答案 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'});
};