控制器不能识别从routeProvider传入的routeParams变量

controller does not recognize routeParams variable passed from routeProvider

本文关键字:routeParams 变量 routeProvider 不能 识别 控制器      更新时间:2023-09-26
  <script>
    var app= angular.module('myApp', ['ngRoute', 'ngResource']);
    app.factory('Greeter', ['$resource',function($resource){
      return $resource(
        'http://123.com/processor-url.php',{
        },{
          query: {
            method:'GET',
            /*params: { myvar: myvarActual },*/
            isArray:true
          }
        }
      );
    }]);
    app
    .controller('appointmentController', ['$scope', 'Greeter',function($scope,$routeParams,Greeter){
      alert($routeParams.myvar);
      Greeter.query(function(data) {
        $scope.output = data.myvar;
      });
    }]);
    app.controller('homeController', ['$scope', function($scope){
    }])

    /*Final Config After Loading Everything*/
    app.config(['$routeProvider', function($routeProvider) {
      $routeProvider.when('/appointments/:myvar', {templateUrl: 'appointments.html', controller: 'appointmentController'});
      $routeProvider.when('/home', {templateUrl: 'home.html', controller: 'homeController'});
      $routeProvider.otherwise({redirectTo: '/home'});
    }]);
  </script>

在上面的代码中,似乎控制器甚至没有识别出应该包含在routeProvider's myvar中的myvar。由于警报将显示undefined,而不是myvar的实际值(即. ...)/appointments/1066……如果是这样,我希望$routeParams.myvar = 1066alert($routeParams.myvar)应该是1066

$routeParams缺少依赖声明,所以目前它正在寻找Greeter上不存在的myvar

app
.controller('appointmentController', ['$scope', 'Greeter',function($scope,$routeParams,Greeter){
应该…

app
.controller('appointmentController', ['$scope', '$routeParams', 'Greeter', function($scope, $routeParams, Greeter){