$mdDialog如何与承诺和$scope一起工作



我是角度的新手,尝试使用角度材料来创建弹出对话框。我对这里的承诺和$scope感到困惑。如果我单击对话框按钮,控制台将显示"已创建",然后不会弹出任何窗口。但是如果我把它改成.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();
          }
        }

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

最新更新