当Url params改变时,Angular StateParams永远不会改变?

时间:2016-02-06 04:59:38

标签: angularjs ionic-framework

我正在创建一个Ionic应用程序,并且有一个非常基本的路由方案,我正在尝试使用id param转到详细页面,这是可选的。

每次都会成功导航,但是当我尝试访问控制器中的值时,它仍然与第一次请求的内容相同。

例如,导航到playlists/1会输出Object {playlistId: "1"},然后导航到playlists/2时会再次输出Object {playlistId: "1"}

我已经尝试了很多东西,但找不到帮助的问题。

我的路线设置如下:

  .state('app.single', {
    url: '/playlists/:playlistId',
    views: {
      'menuContent': {
        templateUrl: 'templates/playlist.html',
        controller: 'PlaylistCtrl',
         resolve: {
           playlistId: function($state, $stateParams) {
             return $stateParams.playlistId; // note this changes every time. I put this here for testing.
           }
         }
      }
    }
  })

我的控制员:

.controller('PlaylistCtrl', function($scope, $stateParams) {

  console.log($stateParams);

使用导航:

<div class="card">
      <div class="item item-text-wrap" ui-sref="app.single({playlistId: undefined})">
        Test
      </div>
    </div>
    <div class="card">
      <div class="item item-text-wrap" ui-sref="app.single({playlistId: 1})">
        Test 1
      </div>
    </div>
    <div class="card">
      <div class="item item-text-wrap" ui-sref="app.single({playlistId: 2})">
        Test 2
      </div>
    </div>

1 个答案:

答案 0 :(得分:1)

听起来你正在打高速缓存。您可以通过将cache:false添加到您的州来禁用它:

.state('app.single', {
    cache: false, //add this
    url: '/playlists/:playlistId',
    views: {
      'menuContent': {
        templateUrl: 'templates/playlist.html',
        controller: 'PlaylistCtrl',
         resolve: {
           playlistId: function($state, $stateParams) {
             return $stateParams.playlistId; // note this changes every time. I put this here for testing.
           }
         }
      }
    }
  })