AngularJS缓存问题

时间:2014-01-17 14:25:51

标签: javascript angularjs caching laravel

我们有一个基于https://github.com/davemo/end-to-end-with-angularjs组合angularJS和laravel的项目。但是,在缓存方面我们遇到了一个问题。

我们有一个显示URL参数的模板,这些参数由控制器$scope.param1 = $routeParams.userId;

传入

当您转到页面http://localhost/#/foo/bar时,模板会显示

<h1>foo</h1>
<h2>bar</h2>

但是,当您点击进入,或将网址更改为http://localhost/#/thunk/foo时,您仍会看到显示的模板

<h1>foo</h1>
<h2>bar</h2>

直到您执行页面的重新加载。然后你得到:

<h1>thunk</h1>
<h2>foo</h2>

有关导致问题的原因以及angularJS是否具有忽略缓存功能的任何想法?

示例代码

var app = angular.module("app", ['ngSanitize']);

/********************************/
/*
 * Routes
 */

app.config(function($routeProvider) {

  // User profile
  $routeProvider.when('/:userId' , {
    templateUrl : 'templates/profile/profileLanding.html' ,
    controller : 'ProfileLandingController' ,
    resolve : {
      profileDetails : function(UserProfileService) {
        return UserProfileService.getDetails();
      }
    }
  });

});

/********************************/
/*
 * Models
 */

app.run(function($rootScope, $location, AuthenticationService, FlashService) {

// User pofile
app.factory("UserProfileService" , function($http , $route) {

  // Get id from param
  var id = $route.current.params.userId;

  return {

    // Get user details
    getDetails : function() {
      return $http({
        url: '/user', 
        method: "GET",
        params: {user_id: id}
      });
    }

  }
});

/********************************/
/*
 * Controllers
 */

app.controller("ProfileLandingController" , function($scope , $routeParams , profileDetails) {
  $scope.param1 = $routeParams.userId;
  $scope.details = profileDetails.data;
});

0 个答案:

没有答案