【问题标题】:having troubles using stateparams with angularjs在使用带有 angularjs 的 stateparams 时遇到问题
【发布时间】:2014-04-02 14:08:41
【问题描述】:

你好,

我正在尝试在我的路由器中使用如下参数:

我的 html 文件中的 url 调用:

<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

你知道它是从哪里来的吗?

谢谢。

【问题讨论】:

    标签: angularjs routing


    【解决方案1】:

    您已经包含或使用了 ui-router 和 angularjs 标准 $route 服务,它们不兼容,因为两者都做同样的事情。您将不得不选择其中之一。

    请参阅ui-router 上的文档以了解如果您采用ui-router 方式,路由是如何设置的。

    另外查看$routeProvider 文档并使用$routeParams 而不是$stateParams

    更新:基于 cmets,问题是 config 方法不能注入服务,只能注入提供程序,因此您不能在 .config 方法中注入 $routeParams,因此请从那里删除。

    如果你想注入路由参数使用

    resolvedHikelist: ['Hikelist','$routeParams', function (Hikelist,$routeParams) {
                                return Itemlist.get({id: $routeParams.listId});
                            }]
    

    【讨论】:

    • 好的,我想使用 routeProvider 和 $routeParams,但我得到了同样的错误:错误:[$injector:unpr] 未知提供者:$routeParams。我不明白那次注射出了什么问题。
    • 当你像app = angular.module("packApp", ["ngRoute"这样声明你的应用程序时,你需要包含ngRoute模块作为依赖项
    • 还要确保在脚本中包含angular-route.js。见文档docs.angularjs.org/api/ngRoute
    • 我已经检查过了,一切都配置得很好,我的路线运行良好,直到我添加了我需要的 routeParams 东西。
    • 我尝试过一个空白的角度项目,它是一样的。如果我在依赖项中添加 $routeParams,我会遇到同样的问题:未知提供者。
    【解决方案2】:

    如果您在 ItemlistController 中使用 $stateParams,请不要忘记将其注入该控制器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多