AngularJS - 参数为全局访问的路由

AngularJS - route with parameter to be accesses globally

我正在 AngularJS 中创建调查表。要求是在电子邮件中提供参数中带有 surveyId 的调查 link。

我厌倦了下面的代码,但我无法访问接收控制器中的 surveyId,它显示未定义。此外,当我尝试直接使用参数访问 url 时,它不会加载。

这就是我尝试在本地环境中直接访问 link 的方式,其中 4 是 surveyId http://localhost:9000/fillSurvey/4

有人可以指导我正确的方向吗?`

var app = angular.module('mainApp', ['ngRoute']);

app.config(['$routeProvider', '$locationProvider',


  function($routeProvider, $locationProvider) {

    /*$locationProvider.html5Mode(true).hashPrefix('!');*/

    $locationProvider.html5Mode({
      enabled: true,
      requireBase: false
    });
    $routeProvider.when('/fillSurvey/:surveyId', {
        templateUrl: 'surveyManagement/views/surveysList.html',
        controller: 'fillSurveyCtrl'
      })

      .otherwise({
        redirectTo: '/'
      })

  }
]);


app.controller('fillSurveyCtrl', ['$scope', '$location', '$http', '$localStorage', '$filter', '$interval', function($scope, $location, $http, $localStorage, $filter, $interval, $routeParams) {


  $scope.surveyId = $routeParams.surveyId;
  alert($scope.surveyId);

}]);

编辑

所以我缺少添加依赖项“$routeParams”,这就是未定义的原因。 有人可以指导我如何使 link 像这样从任何地方都可以访问吗 baseURL/fillSurvey/5

其中 5 是调查 ID

谢谢

您的控制器配置不正确。

比较 ['$scope', '$location', '$http', '$localStorage', '$filter', '$interval',


函数($scope, $location, $http, $localStorage, $filter, $interval, $routeParams )

希望你能理解。