$ mdDialog如何使用promise和$ scope?

时间:2016-02-16 01:12:54

标签: angularjs angular-material

我是角色的新手,尝试使用角度材质来创建弹出对话框。我对这里的承诺和范围感到困惑。如果单击对话框按钮,控制台将显示“已创建”,然后将不会弹出任何窗口。 但如果我将其更改为.then(createFolder, ..)function createFolder(){...},一切正常。

$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();
          }
        }

1 个答案:

答案 0 :(得分:0)

您正在使用$scope.createFolder同时成功关闭对话框时调用的函数,以及显示对话框的函数。你的第二个声明是覆盖你的第一个。重命名其中一个。