刷新指令的缓存

时间:2017-02-21 11:22:09

标签: angularjs caching directive

我有一个关于天气预报的迷你应用程序。这是获取某个位置的天气信息的流程:

  1. 搜索位置

  2. 点击下面的结果列表。地图将更新并显示标记。

  3. 点击标记,将显示显示天气预报信息的信息框。 我使用指令在地图内生成信息框。这是我的代码:

    app.directive("todayInfoDirective", function ($compile) { return { templateUrl: './src/views/infoBox.html', link: function(scope, element, attrs) { scope.city = scope.$eval(attrs.city); console.log(scope.city); } } });

  4. 我尝试在这个指令(scope.city)中使用console.log数据,每当我点击不同位置的标记时,我都会看到有新数据。

    我觉得有一个缓存,它使每个弹出窗口都有相同的内容。 对这个问题有什么想法吗? 这是我的申请的链接:beacots.com/wf/index.html

    先谢谢!!!

1 个答案:

答案 0 :(得分:0)

这是因为我服务的错误。以前,它看起来像这样:

app.factory('darkSkySvr', function($http) {
    var promise = null;
    return function(lat, lng) {
        if(promise) {
            return promise;
        }
        else {
            promise = $http({
                cache: false,
                method: 'GET',
                url: 'http://api.thoitiethanoi.dev2.sutunam.com/forecast/' + lat + ',' + lng,
            })
            return promise;
        }
    }
})

我通过这段代码进行了更新:

app.factory('darkSkySvr', function ($http) {
    var promise = null;
    return function (lat, lng) {
        promise = $http({
            cache: false,
            method: 'GET',
            url: 'http://api.thoitiethanoi.dev2.sutunam.com/forecast/' + lat + ',' + lng,
        })
        return promise;
    }
})