【问题标题】:AngularJS Resolve Unknown keyProviderAngularJS 解决未知的 keyProvider
【发布时间】:2013-10-01 00:13:52
【问题描述】:

我正在尝试在加载控制器和模板之前解析 JSON 承诺。

var app = angular.module('app', []);

app.config(function ($routeProvider) {
  $routeProvider.when('/', {
    templateUrl: 'index-ctrl-test.html',
    controller: 'IndexCtrl',
    resolve: {
        event: function ($http) {
            return $http.get('/api/eventInfo.json?event_name=Some Event Name');
        }
    }
  });
});

var IndexCtrl = app.controller('IndexCtrl', ['$scope', 'event', function ($scope,event)   {
  console.log(event.data);
}]);

resolve promise 的 key 被注入到控制器中,但是一直报错:

错误:未知提供者:eventProvider

尽管有错误,但数据似乎确实可用(即,console.log 实际上记录了返回的 JSON 对象)。任何想法是什么引发了错误?我没有使用 javascript 缩小器或混淆器。

【问题讨论】:

  • 向我们展示您的 eventProvider 代码

标签: javascript angularjs dependency-injection resolve


【解决方案1】:

您的 HTML 视图是否包含 ng-controller="IndexCtrl" 属性? 这会在不注入 resolve 参数的情况下实例化控制器,并且会抛出您在此处看到的错误。

如果您删除它,而只使用普通的ng-view,则控制器将仅使用$routeProvider 服务实例化,并解决正确的依赖关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2022-06-15
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多