为什么$routeParams不起作用?定义

Why is $routeParams not working? Undefined

本文关键字:定义 不起作用 routeParams 为什么      更新时间:2023-09-26

>我要在Angular和Django rest框架上构建简单的应用程序。我有下一个根应用程序:应用.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/user/#/admin我想在这种情况下应该使用用户名参数触发路由。但是我已经没有定义。谁能解释一下我哪里做错了?

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

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

您是否也安装了 ngRoute 模块?

正如描述所说,路由在控制器中尚未完成,因此参数也是未定义的。

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

应该做这项工作。