让我的头围绕路线解析并想知道以下列方式使用$ 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中拉出来的,状态不会改变直到路线被解决,这是否意味着以这种方式使用它不会起作用?
谢谢,圣诞快乐: - )
答案 0 :(得分:3)
是。它会起作用,但只是稍微调整你的代码:
.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方法中的参数。