我是角度的新手,尝试使用角度材料来创建弹出对话框。我对这里的承诺和$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
来表示在对话框成功关闭时调用的函数,以及用于显示对话框的函数。 您的第二个声明将覆盖您的第一个声明。 重命名其中一个。