Javascript $routeParams未返回对象

Javascript $routeParams未返回对象,javascript,angularjs,Javascript,Angularjs,我有一个控制器,我试图使用$routeParams访问该控制器上的参数,但当我使用console.log检查该值时,正在引用lodash (function() { 'use strict'; angular .module('card-info.controller', ['ui.bootstrap']) .controller('CardInfoController', CardInfoController); CardInfoController.$inje

我有一个控制器,我试图使用$routeParams访问该控制器上的参数,但当我使用console.log检查该值时,正在引用lodash

(function() {
  'use strict';

  angular
    .module('card-info.controller', ['ui.bootstrap'])
    .controller('CardInfoController', CardInfoController);

  CardInfoController.$inject = [
    'fetchCard',
    'fetchSet',
    '_',
    '$routeParams',
    '$filter',
    '$location'
  ];

  function CardInfoController (fetchCard, _, $routeParams, $filter, $location) {
    var vm = this;
    var id = $routeParams.id;

    fetchCard.getCardInfo(id).then(function(d) {
      displayCard(d);
    });

  ...

  }
)}()

这里有一个链接到。路由器事件正在触发,URL正在正确更改。我的注入似乎有问题。

$routeParams
ngRoute
模块的一项服务,您必须将其添加到模块声明中:

 angular
  .module('card-info.controller', ['ui.bootstrap', 'ngRoute'])
  .controller('CardInfoController', CardInfoController);

来源:

您的注入值和它的名称之间有一个错误的偏移量

您注入了
fetchSet
,但未在函数签名中使用它

这个

应该是

function CardInfoController (fetchCard, fetchSet, _, $routeParams, $filter, $location) {

伟大签名的宇宙秩序得以恢复

非常感谢,就这样。有没有一种简单的方法可以避免这种情况,在未来的测试中,我是否只需要更加认真地观察注射是如何进行的?单元测试就是为了避免这种情况,我建议你看看karma和jasmine,它们都是很好的单元测试工具(至少是这样,当我每天使用angularjs开发时,我可能已经过时了)
function CardInfoController (fetchCard, fetchSet, _, $routeParams, $filter, $location) {