0

我正在尝试在加载控制器和模板之前解决 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 <- event

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

4

1 回答 1

0

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

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

于 2013-10-01T03:15:30.303 回答