使用AngularJS将控制注入控制器

Maa*_*ten 33 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() {

}]);
Run Code Online (Sandbox Code Playgroud)

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

我得到的错误是Photo是未定义的,所以我的猜测是我的传递方法(注入)它是错误的,但我无法找到如何正确地做到这一点

Dav*_*lli 54

您需要定义Photo服务:

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() {

    }]);
Run Code Online (Sandbox Code Playgroud)

几个参考:

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

另请参见此处的示例: AngularJS多次使用Controller和rootScope

还有一个Plunker:http://plnkr.co/edit/Bzjruq