nHello,
我正在尝试使用路由器中的参数,如下所示:
我的网址在我的html文件中调用:
<a href="#/itemlist/{{hikelist.id}}">Edit</a>
我的路由器:
packApp
.config(['$routeProvider', '$httpProvider', '$translateProvider', '$stateParams',
function ($routeProvider, $httpProvider, $translateProvider, $stateParams) {
$routeProvider
.when('/itemlist/:listId', {
templateUrl: 'views/itemlists.html',
controller: 'ItemlistController',
resolve:{
resolvedHikelist: ['Hikelist', function (Hikelist,$stateParams) {
return Itemlist.get({id: $stateParams.listId});
}]
}
})
}]);
但是当我运行我的应用程序时,我有这个错误:
错误:[$ injector:unpr]未知提供者:$ stateParams
你知道它可以来自哪里吗?
谢谢。
答案 0 :(得分:1)
您已经包含或使用了ui-router
和angularjs标准$ route服务,这些服务不兼容,因为它们都做同样的事情。你必须选择其中之一。
请参阅ui-router上的文档,了解如果采用ui-router
方式设置路线的方式。
请查看$routeProvider
文档并使用$routeParams
代替$stateParams
更新:根据评论,问题是config
方法无法注入服务但只能注入提供者,因此您无法在$routeParams
方法中注入.config
,因此请从中删除。
如果你想注射routeparams,请使用
resolvedHikelist: ['Hikelist','$routeParams', function (Hikelist,$routeParams) {
return Itemlist.get({id: $routeParams.listId});
}]
答案 1 :(得分:0)
如果你在ItemlistController中使用$ stateParams,请不要忘记将它注入该控制器。