0

コントローラーとテンプレートをロードする前に JSON promise を解決しようとしています。

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);
}]);

解決プロミスのキーがコントローラーに挿入されますが、エラーがスローされ続けます。

エラー: 不明なプロバイダー: eventProvider <- イベント

エラーにもかかわらず、データは利用可能であるように見えます (つまり、console.log は実際に、返された JSON オブジェクトをログに記録します)。エラーをスローしているアイデアはありますか? 私は JavaScript のミニファイヤや難読化ツールを使用していません。

4

1 に答える 1

0

HTML ビューにng-controller="IndexCtrl"属性が含まれていますか? これにより、パラメーターを注入せずにコントローラーがインスタンス化され、resolveそこに表示されるエラーがスローされます。

それを削除して代わりにプレーンを使用するとng-view、コントローラーはサービスでのみインスタンス化され$routeProvider、適切な依存関係が解決されます。

于 2013-10-01T03:15:30.303 に答える