我是angularjs
的新手。在创建了一些带有宁静网络服务的项目后,我陷入了困境。所以请帮助我解决这些问题。
我已经从AngularJs $resource vs $http
$resource
和$http
之间的区别
我的问题是,当我使用$resource
时,数据是异步的
例如如果我保存任何数据并转移到详细信息页面,我得到的数据不会更新,如果我等待一段时间,我将获得新数据。
所以我需要继续$http
或是否还有其他方式可以同步拨打电话。
我也试过$promise
,但它并没有解决我的问题。
答案 0 :(得分:4)
这就是我使用$ resource的方式
控制器中的:
var promise = Service.queryItem();
promise.then(function(response){
// just adding my response items to an array
angular.forEach(response, function(item){
$scope.items.push(item);
});
}, function(reason){
console.log(reason);
});
在服务中
this.queryItem = function (){
var deferred = $q.defer();
setTimeout(function() {
// deferred.notify('Saving data..');
var items = Items.query({},function() {
deferred.resolve(items.d.results);
}, function(error){
deferred.reject(error);
});
}, 1000);
return deferred.promise;
};
在$ resource factory中:
// just a snippet from my factory
query: {
method: 'GET',
headers: { "Accept": "application/json; odata=verbose" },
url: "RequestURL"
},
正如一些评论所述,promise
的使用将使其按所需顺序运行,因为您可以看到我在.then