使用Angular Seed注入服务 - “未知提供者”错误

时间:2015-03-15 10:06:13

标签: angularjs

我正在关注AngularJS基础知识的PluralSight教程。虽然我使用了一个非常不同的结构,因为我似乎有一个更新版本的Angular Seed。

我正在尝试使用与之前相同的语法结构将服务注入控制器,这工作正常,但是这个会带来以下错误:

Error: [$injector:unpr] Unknown provider: eventDataProvider <- eventData

viewEventDetails.js(Controller)

'use strict';

angular.module('myApp.viewEventDetails', ['ngRoute'])
.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.when('/viewEventDetails', {
        templateUrl: 'viewEventDetails/viewEventDetails.html',
        controller: 'viewEventDetailsCtrl'
    });
}])
.controller('viewEventDetailsCtrl', ['$scope', 'eventData', function($scope, eventData) {
    $scope.sortorder = '-upVoteCount';
    $scope.event = eventData.getEvent(function (event) {
       $scope.event = event;
    });

    $scope.upVoteSession = function (session) {
        session.upVoteCount++;
    };
    $scope.downVoteSession = function (session) {
        session.upVoteCount--;
    };
}
]);

EventData.js(服务)

angular.module('myApp.services', [])
.factory('eventData', ['$http', '$log', function ($http, $log) {
    return {
        getEvent: function () {
            $http({ method: 'get', url: '/data/event/1' })
                .success(function (data, status, headers, config) {
                    $log.warn(data, status, headers(), config);
                })
                .error(function (data, status, headers, config) {
                    $log.warn(data, status, headers(), config);
                });
        }
    }
}]
);

app.js

'use strict';

// Declare app level module which depends on views, and components
angular.module('myApp', [
'ngRoute',
'ngSanitize',
'myApp.filters',
'myApp.services',
'myApp.viewNewEvent',
'myApp.viewEventDetails',
'myApp.viewEditProfile',
'myApp.version'
]).
config(['$routeProvider', function($routeProvider) {
$routeProvider.otherwise({redirectTo: '/view1'});
}]);

1 个答案:

答案 0 :(得分:1)

您需要将myApp.services注入控制器所在的模块中,因为模块不同。

即。

angular.module('myApp.viewEventDetails', ['ngRoute', 'myApp.services'])