我是angularjs的新手,并且在角度方面有同步工作的问题。 这是我的代码,想要在控制器中用变量的结果填充变量,现在它返回一个空对象或未定义:
我想要一个使用服务的解决方案,并在它们准备就绪时使用结果,我该怎么办?
App.service("UserService",['$location',"$http","$timeout",function($location,$http,$timeout){
var User={};
var CheckAuthenticationURL="/fa/home/IsAuthenticate";
if($location.protocol() == "https")
{
CheckAuthenticationURL="https://www.mytest.org/fa/home/IsAuthenticateSecure";
}
var UpdateUserData= function(){
return $http.get(CheckAuthenticationURL)
.success(function(data, status, headers, config) {
User=data;
})
};
var getUser= function()
{
UpdateUserData();
return User;
}
return{
UpdateUserData: UpdateUserData,
getUser: getUser
};
}]);
App.controller('GeneralCtrl',['$scope','$http','UserService','$interval', function($scope,$http,UserService,$interval) {
$scope.User={};
$scope.User=UserService.getUser();
}]);
答案 0 :(得分:0)
将User=data;
更改为User.name=data;
。
然后,只要响应到达,$scope.User.name
就会被更改。