$资源查询()服务器端的数据修改完成后不显示的最新数据($resource query() is n

2019-10-19 04:17发布

脚本

初始$资源查询()从服务器检索包含“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
            }
        });
});
文章来源: $resource query() is not displaying the latest data after a server-side data modification was done