[AngularJS]$routeParams 为什么不工作?未定义

发布时间: 2017/4/16 20:49:59
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我竭力不去打造上角和 Django 的其他框架的简单应用程序。 我有一个下一根应用程序︰ app.js

angular
    .module('sharePhotoApp', [
    'ngRoute',
    'sharePhotoApp.controllers',
    'sharePhotoApp.services'
    ])
    .config(['$routeProvider', function($routeProvider) {
    $routeProvider
        .when('/', {
          templateUrl: '/',
          controller: 'PostListController'
        })
        .when('/:username', {
          templateUrl: '/user/',
          controller: 'UserDetailController'
         })
        .otherwise({
          redirectTo: '/'
        });
}]);

和下一个控制器︰

angular
    .module('sharePhotoApp.controllers')
    .controller('UserDetailController',  UserDetailController)

    UserDetailController.$inject = ['$scope','$routeParams','userService'];

function UserDetailController($scope, $routeParams, userService){

    alert($routeParams.username);

    $scope.user = userService.get({ username: $routeParams.username });
}

我试着跟随在浏览器中的下一个 URL: http://127.0.0.1:8000/,用户,#,行政我想在这种情况下应触发用户名参数的路由。 但我已经定义。 任何人都能解释在哪里我做错吗?

解决方法 1:

"请注意,$routeParams 只更新后路由更改成功完成。这意味着,你不能依靠 $routeParams 正在正确的路线解决功能。相反你可以使用 $route.current.params 来访问新路由参数"。

https://docs.angularjs.org/api/ngRoute/service/ $routeParams

你也安装了 ngRoute 模块?

正如说明所说,路线不完成在您的控制器,所以 params 也未定义。

$scope.$on('$routeChangeSuccess', function() {
    // $routeParams should be populated here
  });

应该做这项工作。

赞助商