Angular material用$ mdDialog打开下一个对话框的正确方法

时间:2017-01-24 13:26:18

标签: javascript angularjs angular-material

在我的代码中,我为用户显示$mdDialog对话框:

$mdDialog.show({
   controller: 'loadingDialogCtrl',
   templateUrl: 'tmpl/loadingDialog.tmpl.html'
});

然后在ajax响应之后我想关闭它并显示错误对话框:

error: function (err) {               
  $mdDialog.hide();
  $mdDialog.alert()
           .title('Error')
           .textContent(err)
           .ariaLabel('Alert command error')
           .ok('Ok');
  }

但这不起作用。

1 个答案:

答案 0 :(得分:0)

请参阅以下代码 关闭mdDialog后,有2个块与ajax调用相同(成功和错误)
因此,请在其中一个中调用错误提示(对话框)。

$mdDialog.show({
   controller: 'loadingDialogCtrl',
   templateUrl: 'tmpl/loadingDialog.tmpl.html'
}).then(function(){
   //success block
   //this block will get called when when you do $mdDialog.hide();
   //in your loadingDialogCtrl
   //then the below dialog will open
   $mdDialog.alert()
      .title('Error')
      .textContent(err)
      .ariaLabel('Alert command error')
      .ok('Ok');
}, function(){
   //error block
});

此代码在主控制器中,隐藏/关闭第一个对话框并在主控制器中执行操作。