脚本
初始$资源查询()从服务器检索包含“A”,“B”的对象,及“C”的条目。
然后,用户到不同的添加条目界面,并增加了一个“d”条目。 该屏幕通过一个客户端处理不通过服务器端的过程中完成的。
用户现在返回到第一屏幕和重新查询$资源查询(),然而,这仍是示出包含“A”“C”条目的对象,“B”,及。 在“d”不是由$资源检索的对象。
题
如何能在$资源查询()来实现,以便它现在可以去到服务器并获取最新的名单?
研究
我发现一个答案最接近的是在这里- > 如何刷新本地数据使用$资源服务于AngularJS牵强 ,但是,我不知道由什么意思的人
在报表中添加一个新的实例列表将刷新页面上显示的列表。
某些代码段
控制器JS:
angular.module('AutomationApp')
.controller('FirstTryController', function ($scope, TestSuites) {
$scope.testsuites = {};
TestSuites.query(function (response) {
$scope.testsuites = response.TestSuites;
});
});
服务JS:
angular.module('AutomationApp')
.factory('TestSuites', function ($resource) {
return $resource('/api/listTestSuites/:TestSuiteId',
{ TestSuiteId: '@TestSuiteId' },
{
query: {
method: 'GET',
params: {},
isArray: false
}
});
});
app.js:
var app = angular.module('AutomationApp', ['ngRoute', 'ngResource']);
app.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/list', {
templateUrl: 'app/views/firsttry.html',
controller: 'FirstTryController',
resolve: {
delay: function ($q, $timeout) {
var delay = $q.defer();
$timeout(delay.resolve, 500);
return delay.promise;
}
}
});
});
重温/摘要
在初始$资源查询(),它是如预期检索最新的数据。 但是,如果在服务器中的数据是由一些服务器端程序修改,并且用户返回并重新执行$资源查询(),检索到的数据不反映新修改服务器端的数据。
先感谢您。
**** ----编辑UPDATE ---- ****
这似乎是IE 8的相关。 该代码可以使用浏览器和Mozilla,但没有与IE 8的任何想法哪里何去何从? 再次感谢你。
解决
我去了我在这篇文章中发现角IE缓存的问题为$ HTTP 。 感谢您Pathsofdesign供应的链接。
我做了以下的变化,使这项工作( 增加的内容里面PARAMS {}):
Service js:
angular.module('AutomationApp')
.factory('TestSuites', function ($resource) {
return $resource('/api/listTestSuites/:TestSuiteId',
{ TestSuiteId: '@TestSuiteId' },
{
query: {
method: 'GET',
params: { 'foobar': new Date().getTime() },
isArray: false
}
});
});