使用AngularJS将服务注入到控制器中

前端之家收集整理的这篇文章主要介绍了使用AngularJS将服务注入到控制器中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经在AngularJS中写了一个服务,但是我不能让它工作的角种子的做事的方式。

控制器代码如下:

/*function PhotoCtrl($scope,Photo) {
    $scope.photos = Photo.query();
}*/

angular.module('myApp.controllers',[]).
    controller('PhotoCtrl',[function($scope,Photo) {
    $scope.photos = Photo.query();
}])
.controller('MyCtrl2',[function() {

}]);

注意,注释掉部分工作正常,但我想处理它有点像(推荐)第二种方式。

我得到的错误是照片是未定义的,所以我的猜测将是我的传递(注入)的方法错误的,但我不知道如何正确地做

您需要定义照片服务:
angular.module('myApp.controllers',[])
    .service('Photo',['$log',function ($log) {

        return {
            query: function() {
                // the query code here.
            }
        };

    }])
    .controller('PhotoCtrl',['$scope','Photo',function ($scope,Photo) {
        $scope.photos = Photo.query();
    }])
    .controller('MyCtrl2',[function() {

    }]);

几个参考:

> http://docs.angularjs.org/api/angular.Module
> http://docs.angularjs.org/api/AUTO.$provide#service

在上面的示例代码中,我使用参数别名,我建议为了避免在缩小代码时出现问题。

另请参见示例:
AngularJS multiple uses of Controller and rootScope

和一个Plunker在这里:
http://plnkr.co/edit/Bzjruq

猜你在找的Angularjs相关文章