AngularJS - 如何传递最新的$ routeParams来解决?

时间:2014-09-16 21:38:37

标签: javascript angularjs

如何通过当前的$ routeParams来解析,以便它们可用于执行特定的$ http.get。现在我刚刚测试了$ routeParams并传回了param以登录我的控制器以查看它是否有效,但它是每次后面的路线。例如,在加载时它是未定义的,并且在后续路由中,参数是先前的路由参数,因此我单击一个新链接并显示上一个链接路径中的参数。

路线片段

    .when('/something/:paramType', {
        templateUrl: '/app/views/something.html',
        controller: 'SomethingController',
        controllerAs: 'someCtrl',
        access: {
            authentication: true
        },
        resolve: {
            SomeData: function( $routeParams ) {
                return $routeParams.paramType;
            }
        }
    })

Controller Snippet

   .controller('SomethingController', ['$scope', 'SomeData', function( $scope, SomeData) { 

       console.log(SomeData);
   }])

如何在加载时初始化参数,并使其每次都正确同步?我想这样做的原因是我可以执行$ http.get并传递$ routeParams来定义返回的数据。

1 个答案:

答案 0 :(得分:35)

来自angular documentation for $ routeProvider

  

请注意,ngRoute。$ routeParams仍然会引用前一个   这些解析函数中的路由。使用$ route.current.params来   相反,访问新的路线参数。

所以..

SomeData: function( $route ) {
    return $route.current.params.paramType;
}