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