我正在多个页面使用来自RESTful服务的一些数据。 所以我正在使用angular工厂来实现。因此,我需要从服务器获取数据一次,并且每次都使用定义的服务获取数据。就像全局变量一样。这里是一个示例:
var myApp = angular.module('myservices', []);
myApp.factory('myService', function($http) {
$http({method:"GET", url:"/my/url"}).success(function(result){
return result;
});
});
在我的控制器中,我使用这个服务:
function myFunction($scope, myService) {
$scope.data = myService;
console.log("data.name"+$scope.data.name);
}
根据我的需求,它对我很有效。但问题在于当我在网页中重新加载时,服务将再次被调用并请求服务器。如果其间执行了一些依赖于"已定义服务"的其他函数,则会出现"某些内容"未定义的错误。因此,我想在我的脚本中等待服务加载。我该如何做?在angularjs中有没有办法做到这一点?
function myFunction($scope, myService) { var myDataPromise = myService.getData(); myDataPromise.then(function(result) { $scope.data = result; console.log("data.name"+$scope.data.name); }); console.log("这会在.then内部的数据名称之前被打印出来,我不希望出现这种情况。"); }
- Sujoy