我有点被分配给$scope变量
的函数所困扰。
需要等到完成。
这是分配给$scope变量
的函数:
$scope.ChooseHome = function() {
ModalWindowService.openChooseHomeDialog($scope);
}
在 ModalWindowService 中我有:
function openChooseHomeDialog($scope) {
$scope.animationsEnabled = true;
var modalInstance = $modal.open({
animation: $scope.animationsEnabled,
templateUrl: '/view/user/ChooseHomeDialog.html',
controller: 'chooseHomeDialogController',
windowClass: 'detail-modal-window'
});
modalInstance.result.then(function (CondoID) {
$scope.choosenCondoID = CondoID;
});
}
我想要做的是在从“$scope.ChooseHome”函数中的模态中获取此变量“$scope.chooseCondoID”并对其进行一些处理后,正确接收该变量“$scope.choosenCondoID”。
像这样的选项:
$scope.ChooseHome = function() {
ModalWindowService.openChooseHomeDialog($scope).then(*do my stuff*); /
ModalWindowService.openChooseHomeDialog($scope).success(*do my stuff*);
}
但是它不起作用,我收到这样的错误:
'TypeError: (intermediate value).success is not a function'
最佳答案
试试这个:
function openChooseHomeDialog($scope) {
$scope.animationsEnabled = true;
return $modal.open({
animation: $scope.animationsEnabled,
templateUrl: '/view/user/ChooseHomeDialog.html',
controller: 'chooseHomeDialogController',
windowClass: 'detail-modal-window'
}).result;
}
$scope.ChooseHome = function() {
ModalWindowService.openChooseHomeDialog($scope).then(*do my stuff*);
}
而且...就像我评论的...将 $scope 传递给您的服务是一个坏主意。您应该只在 Controller 中使用 $scope 将数据粘合到 View 。服务只需要做一些事情或返回一些您可以使用的东西。
为了让它变得更复杂......你可能还想研究一下controllerAs语法,以便你的代码能够面向 future ;)
关于javascript - angularjs回调/等待函数完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32053081/