如何解析 routeProvider 中的参数

How to parse arguments in routeProvider

我试图为应用程序概述和应用程序详细信息定义一条路线。应用程序列在概览页面的 table 中。当用户点击应用程序行时,它将被重定向到详细信息页面(例如 /app/1

angular.module('app', [
    'ngRoute', 'appsOverviewCtrl', 'appDetailCtrl'])
.config(function($routeProvider) {
    $routeProvider.when('/apps', {
        templateUrl: 'partials/overview.html',
        controller: 'appsOverviewCtrl'
    }).when('/app/:appId', {
        templateUrl: 'partials/detail.html',
        controller: 'appDetailCtrl'
    });
})

现在在详细页面中,我会尝试提取appId。我用谷歌搜索了一下,有一种使用 Angular 服务的方法。但我相信还有其他一些更直接的方法。

在你的控制器中,你可以使用$routeParams

function controllerName($scope, $routeParams)
{
  $scope.value = $routeParams.appId;
}

参见https://docs.angularjs.org/api/ngRoute/service/$route

appId 将在 $route.current.params 或 $routeParams 中可用,如果您将它注入您的控制器。

示例来自 AngularJS Phonecat tutorial

这对你不起作用吗?

phonecatControllers.controller('PhoneDetailCtrl', ['$scope', '$routeParams',
  function($scope, $routeParams) {
     $scope.phoneId = $routeParams.phoneId;
  }]);

你的情况是 $routeParams.appId。请记住在您的控制器中包含 $routeParams

但是 ['$scope', '$routeParams' 不是必需的。如果你正在缩小,那就太好了。