我试图创建一个单个角度模块,该模块具有在同一模块中定义的控制器和服务。我得到了未知提供商错误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);
};
}]);
答案 0 :(得分:0)
我能找到的唯一问题是blogModule
需要使用ngRoute
模块,以便能够注入$routeParams
所以改变
var blogModule = angular.module('blogModule', []);
到
var blogModule = angular.module('blogModule', ['ngRoute']);