运行angularjs代码同步并等待函数结果的varibale

时间:2015-05-19 14:31:51

标签: angularjs

我是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();
  }]);

1 个答案:

答案 0 :(得分:0)

User=data;更改为User.name=data;。 然后,只要响应到达,$scope.User.name就会被更改。