搜尋

首頁  >  問答  >  主體

angular.js - angularjs 如何禁止範本緩存

angularjs載入不同的路由模板,但是它總是使用緩存,重新載入頁面都沒用。如何才能禁止路由機制使用快取?

之前有人提到解決方法是:

when('/data', {
    templateUrl: 'partial/customer_ask.html?t=' + Math.floor(Date.now() / 1000),
    controller: 'dataController'
})

我試了一下結果報錯,404 template not found

迷茫迷茫2783 天前695

全部回覆(2)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 17:12:23

    404應該沒問題,但每次t的結果都是一樣的麼?
    templateUrl對應的是固定的一個模版頁面。你這樣寫估計angular一直找不到
    如果想要在url裡邊傳​​參數,需要在我when後邊配置

    when('/data/:t', {
        templateUrl: 'partial/customer_ask.html,
        controller: 'dataController'
    })
    

    在controller中用

    location.path('/data/'+Math.floor(Date.now() / 1000)) //大概这么写忘记了
    

    或頁面有a標籤

    //controller
    $scope.randomTime = Math.floor(Date.now() / 1000);
    //html
    <a href="#/data/{{randomTime}}">走你</a>
    

    可以參考下這個範例
    https://xdsnet.gitbooks.io/an...

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-15 17:12:23

    要不試試用ui-router取代router吧

    $stateProvider.state('stateName', {
            cache: false,
            .....
    })

    or

    $stateProvider.state('stateName', {
            url: return '/foo/bar/' + $.now();
    })

    回覆
    0
  • 取消回覆