$ http的响应不是实际的响应,而是前一个响应。而且它没有被缓存

时间:2018-04-13 09:38:15

标签: angularjs

我有一个表,其中每一行都是由ng-repeat从一组数据生成的。 在其中一个单元格中有我的指令,它处理由给定URL(来自数组数据)远程获取数据。

我的指令代码:

return {
    restrict: 'E',
    replace: true,
    template: '<div class="row" style="clear:both"></div>',
    link: function (scope, element, attribute) {

        var fethRemoteContent = function () {
            $http.get(attribute.url).then(function (response) {

            console.log(response.data);

            // ...

        }

        $rootScope.$on('$TableHasBeenRefreshed', function () {
            return fethRemoteContent();
        });

        return fethRemoteContent();
    }
}

它的作用就像一个魅力,除了触发事件$TableHasBeenRefreshed时,响应的内容不是实际的未缓存响应,而是先前获取的其他行的内容。我确认它正在进行正确的ajax调用并在Chrome的检查器中获得正确的响应。

我的想法是关于某种索引?可能是ng-repeat?也许我必须破坏变量(似乎很愚蠢,但仍然......)?

0 个答案:

没有答案