绕开路由解决我的问题,想知道是否可以按以下方式使用$ stateParams。
.state('movie', {
url:'/movie/:id',
templateUrl: 'partials/movie.html',
controller: 'MovieController',
controllerAs: 'vm',
resolve: {
movie: function(movieService){
return movieService.getMovie($stateParams.id);
}
}
});
考虑到在解析路由之前URL不会更改,id参数仍会传递给函数吗?
由于id是从stateParams中提取的,并且状态直到路由解析后才会改变,这是否意味着以这种方式使用它就行不通?
谢谢,圣诞节快乐:-)
最佳答案
是。它将起作用,但是只需稍微修改一下代码即可:
.state('movie', {
url:'/movie/:id',
templateUrl: 'partials/movie.html',
controller: 'MovieController',
controllerAs: 'vm',
resolve: {
movie: function(movieService, $stateParams){
return movieService.getMovie($stateParams.id);
}
}
});
请注意,“ $ stateParams”作为resolve方法中的参数。