我正在创建一个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>
答案 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.
}
}
}
}
})