同一模块中控制器和服务的注入错误

时间:2015-06-19 05:33:10

标签: javascript angularjs

我试图创建一个单个角度模块,该模块具有在同一模块中定义的控制器和服务。我得到了未知提供商错误Error: $injector:unpr。我没有多次重新定义模块,所以我不确定问题是什么。

// index.js
var pdizzApp = angular.module('pdizzApp', [
    'ngRoute',
    'blogModule'
]);

pdizzApp.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/blog', {
            templateUrl: 'app/blog/view/blog-list.html',
            controller: 'BlogListController'
        })
        .when('/blog/:postId', {
            templateUrl: 'app/blog/view/blog-detail.html',
            controller: 'BlogDetailController'
        })
        .otherwise({
            redirectTo: '/blog'
        })
}]);



//blogModule.js
var blogModule = angular.module('blogModule', []);

blogModule.factory('PostService', ['$resource',
    function ($resource) {
        return $resource('api/blog/post/:postId', {}, {
            query: {method: 'GET', params: {postId: 'posts'}, isArray: true}
        });
    }]);

blogModule.controller('BlogListController', ['$scope', 'PostService',
    function ($scope, PostService) {
        $scope.posts = PostService.query();

        /**
         * Turn the string into a Date object
         * @param date
         * @returns {Date}
         */
        $scope.toDate = function(date) {
            return new Date(date);
        };
    }]);

blogModule.controller('BlogDetailController', ['$scope', '$routeParams', 'PostService',
    function ($scope, $routeParams, PostService) {
        $scope.post = PostService.get({postId: $routeParams.postId});

        /**
         * Turn the string into a Date object
         * @param date
         * @returns {Date}
         */
        $scope.toDate = function(date) {
            return new Date(date);
        };
    }]);

1 个答案:

答案 0 :(得分:0)

我能找到的唯一问题是blogModule需要使用ngRoute模块,以便能够注入$routeParams

所以改变

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

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