绕开路由解决我的问题,想知道是否可以按以下方式使用$ 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方法中的参数。

10-02 15:18