角度服务注入无法加载到控制器中

时间:2014-01-05 00:35:45

标签: javascript angularjs

目前是一个包含控制器和服务的简单应用。看起来服务正确加载到模块中,但控制器没有将其拾起。如果我从控制器中删除“Photo”注入,代码不会崩溃。只有当我尝试将服务注入控制器时才会发现问题。

controllers.js文件:

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

photoViewer.controller('PhotoListCtrl', ['$scope', 'Photo', function($scope, Photo) {
    $scope.photos = Photo.getPhotos();
}]);

services.js文件:

angular.module('photoViewer.services', [], function($provide) {
    $provide.factory('Photo', ['$resource', function($resource){
        return {
            getPhotos: function() {
                return [
                    {'name': 'test1'},
                    {'name': 'test2'}
                ];
            }
        }
    }]);
});

Html文件:

<html ng-app="photoViewer">
<head>
    <title>Photo Viewer</title>
</head>
<body>
    <div ng-controller="PhotoListCtrl" style="width:500px;">
        <div>{{photos.length}} total photos found.</div>
        <ul>
            <li ng-repeat="photo in photos">
                {{$index + 1}} - {{photo.name}}
            </li>
        </ul>
    </div>
    <script src="/js/libs/angular.min.js"></script>
    <script src="/js/services.js"></script>
    <script src="/js/controllers.js"></script>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

$provide.factory('Photo', ['$resource', function($resource){依赖于$resource,而您似乎没有将其包括在内。

以下是$resource上的文档:

http://docs.angularjs.org/api/ngResource.$resource

http://docs.angularjs.org/api/ngResource