仍然试图理解复杂的AngularJS,所以原谅我缺乏更好的理解。
我有一个功能:
function getTeams(){
var onSuccess = function(results){
$scope.myTeams = results.data;
console.log($scope.myTeams);
};
var onFail = function(error){
console.log(error);
};
dataService.getTeams().then(onSuccess, onFail);
};dataService只是一个JS文件,它具有服务调用(即):
var serviceFactory = [];
var _getTeams = function(){
return $http.get(serviceUrl).then(function (results){
return results;
});
};
serviceFactory.getTeams = _getTeams;
return serviceFactory;最初,当我调用该函数时,我能够得到我需要的团队的列表。
但当我打开一个模态窗口时,在关闭模态窗口时,我调用相同的函数,比如:
$scope.openTeamModal = function(){
$scope.modalInstance = $modal.open({
templateUrl: 'modal.html',
controller: 'modalCtrl',
backdrop: 'static'
});
this.modalInstance.result.then(
function(results){
getTeams();
}
)
}当我在modalInstance.result线下的行getTeams()上设置一个断点(在Chrome控制台中)时,实际上正在检索团队。但是,当我移除断点并简单地让应用程序完成它的过程时,$scope.myTeams的值没有被正确地更新。
如果没有调试,console.log($scope.myTeams)将生成我要检索的原始团队数。
使用Debug,console.log($scope.myTeams)生成了我要检索的正确数量的团队。
任何关于如何解决这一问题的见解都将不胜感激。
发布于 2014-11-19 22:18:00
此返回$http.get(ServiceUrl).then(函数(结果){返回结果;});将立即返回一个对象。.then(函数.当承诺实现时,部分就会执行。因此,当您立即返回给getTeams的电话时,结果将不可用。试一试:
return $http.get(serviceUrl);然后
var promise = getTeams();
promise.then(function(results) {
......
}https://stackoverflow.com/questions/27025268
复制相似问题