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

Sun*_*nil 5 angularjs material-design

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

Material Design mdDialog的文档说明如下:

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

Roy*_*loh 6

它返回一个promise因为您可能希望以不同的方式对未来事件做出反应,例如close(解决承诺)和cancel(拒绝它).

mdDialod.show()返回一个承诺,如文档中所述,因此您可以解析或拒绝它(如上所述,使用close和服务上的cancel方法$mdDialog).

这是您请求的一个简单示例(打开控制台以查看它如何记录每个事件的相应文本).


wil*_*747 5

我认为文档有点模糊,但这是我如何使它工作.

在baseController中:

$mdDialog.show({/*modalOptions*/})
  .then(function(data) {
    console.log(data);
  }, function(err) {
    console.error(err);
  }).finally(function() {
    // finally block is optional for cleanup
  });
Run Code Online (Sandbox Code Playgroud)

在模态控制器中

$scope.cancel = function () {
  $mdDialog.cancel('user pressed canceled');
};

$scope.ok = function () {
  $mdDialog.hide({message: 'here is some result data'});
};
Run Code Online (Sandbox Code Playgroud)