使用AngularJS将服务注入控制器
使用AngularJS将服务注入控制器
我用AngularJS编写了一个服务,但是我不能像angular-seed的方式那样使其正常工作。
控制器代码如下:
/*function PhotoCtrl($scope, Photo) { $scope.photos = Photo.query(); }*/ angular.module('myApp.controllers', []). controller('PhotoCtrl', [function($scope,Photo) { $scope.photos = Photo.query(); }]) .controller('MyCtrl2', [function() { }]);
请注意,被注释掉的部分可以正常工作,但我想更像第二种(推荐的)方式处理它。
我得到的错误是Photo未定义,所以我猜想我的传递方法(注入)是错误的,但我无法找出如何正确地做。
admin 更改状态以发布 2023年5月21日
您需要定义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() { }]);
一些参考:
在上述示例代码中,我使用了参数别名,建议您避免在压缩代码时出现问题。
在这里还有一个例子:
AngularJS multiple uses of Controller and rootScope
以及一个Plunker:
http://plnkr.co/edit/Bzjruq