gpt4 book ai didi

angularjs - 使用 AngularJS 将服务注入(inject) Controller

转载 作者:行者123 更新时间:2023-12-03 08:38:06 25 4
gpt4 key购买 nike

我已经在 AngularJS 中编写了一个服务,但是我无法让它与 angular-seed 的做事方式一起工作。

Controller 代码如下:

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

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

}]);

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

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

最佳答案

您需要定义 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() {

}]);

几个引用:
  • 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 - 使用 AngularJS 将服务注入(inject) Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16876748/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com