如何解析routeProvider中的参数

时间:2015-02-17 14:57:50

标签: javascript angularjs ngroute

我尝试为应用程序概述和应用程序详细信息定义路由。应用程序列在概述页面的表中。当用户点击应用程序行时,它将重定向到详细信息页面(例如/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。我google了一下,有一种方法可以使用Angular服务。但我相信还有其他更直接的方法。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

来自AngularJS Phonecat tutorial

的示例

这不适合你吗?

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

在您的情况下,它将是$routeParams.appId。请记住在控制器中加入$routeParams

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

答案 2 :(得分:0)

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

appId将在$ route.current.params或$ routeParams中提供,如果你将它注入你的控制器。