$mdDialog 如何与 promise 和 $scope 一起工作?

How does $mdDialog work with promise and $scope?

我是 angular 的新手,正在尝试使用 angular material 创建弹出对话框。我对这里的承诺和 $scope 感到困惑。如果我单击对话框按钮,控制台将显示 'created',然后不会弹出 window。 但是如果我把它改成.then(createFolder, ..),function createFolder(){...},一切就ok了

$scope.createFolder = function(ev) {
  $mdDialog.show({
    controller: dialogController,
    templateUrl: 'dialog_new_folder.html',
    parent: angular.element(document.body),
    targetEvent: ev,
    clickOutsideToClose:true,
  })
  .then($scope.createFolder, $scope.cancelDialog);
};

$scope.createFolder = function() {
  console.log('created')
}
$scope.cancelDialog = function() {
  console.log('cancelled')
}


function dialogController($scope, $mdDialog) {
          $scope.folderName = '';
          $scope.hide = function() {
            $mdDialog.hide();
          }
          $scope.cancel = function() {
            $mdDialog.cancel();
          }
        }

您将 $scope.createFolder 用于对话框成功关闭时调用的函数和显示对话框的函数。您的第二个声明将覆盖您的第一个声明。重命名其中之一。