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

mtp*_*ltz 17 javascript angularjs

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

路线片段

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

控制器片段

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

       console.log(SomeData);
   }])
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*ech 35

来自$ routeProvider 的角度文档

请注意,ngRoute.$ routeParams仍会引用这些解析函数中的上一个路由.而是使用$ route.current.params来访问新的路由参数.

所以..

SomeData: function( $route ) {
    return $route.current.params.paramType;
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这是完美的.我沿着错误的路线旅行... params :) (5认同)