我有点卡在分配给$scope variable
的功能上。
需要等到它完成。
这是分配给$scope variable
的功能:
$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'函数中从modal获取它之后正确接收这个变量'$ 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'
答案 0 :(得分:2)
试试这个:
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传递给你的服务是一个坏主意。您应该只在控制器中使用$ scope将数据粘贴到视图中。服务只需要做某事或返回你可以使用的东西。
让它更复杂一点..你可能想要查看controllerAs语法以及将来的代码证明;)
答案 1 :(得分:0)
您必须从openChooseHomeDialog函数
返回您的承诺...
return modalInstance.result.then(function (CondoID) {
$scope.choosenCondoID = CondoID;
});