AngularJS将服务注入多个控制器

 丶原色调 发布于 2023-02-13 18:30

我在自己的模块中定义了一个服务:

angular.module('foteDatasetsService', [])
  .factory('foteAPIservice', function($http) {

    var foteAPI = {};

    foteAPI.getDatasets = function() {
      return $http({
        method: 'JSONP',
        url: 'http://localhost:8080/datasets?callback=JSON_CALLBACK'
      });
    }

    return foteAPI;
  });

在另一个模块中,(在另一个文件中)我有一个控制器,我想用它:

angular.module('foteRequests').controller('foteRequestsController',
  ['$scope', function foteRequestsController($scope, foteAPIservice) {

    //snip other stuff

    $scope.datasets = [];

    foteAPIservice.getDatasets().success(function (response) {
      //Digging into the response to get the relevant data
      $scope.datasets = response;
      console.log(response);
    });

]);

我在一个名为init .js 的文件中有一个init模块,它包含如下依赖项:

'use strict';

angular.module('foteRequests', ['foteDatasetsService']);

它看起来并不像实际上将foteDatasetsService注入控制器.如果我运行该应用程序,我收到一个错误:

Cannot call method 'getDatasets' of undefined

因此,如果我通过在控制器中包含foteDatasetsService来强制解决问题,如下所示:

angular.module('foteRequests').controller('foteRequestsController', ['$scope',
'foteDatasetsService', function foteRequestsController($scope, foteAPIservice) {
...
}]);

它给了我这个错误:

Error: [$injector:unpr] Unknown provider: foteDatasetsServiceProvider <- foteDatasetsService

编辑:我希望能够将此服务注入3个需要获取相同信息的控制器.

任何想法为什么工厂没有创建提供商?我迷失在那一个......

1 个回答
  • 而不是这个:

    angular.module('foteRequests').controller('foteRequestsController',
    ['$scope', 'foteDatasetsService', function foteRequestsController($scope, foteAPIservice)
    { ... }]);
    

    试试这个:

    angular.module('foteRequests').controller('foteRequestsController',
    ['$scope', 'foteAPIservice', function foteRequestsController($scope, foteAPIservice)
    { ... }]);
    

    你已经拥有injectedfoteDatasetsService,现在你只想要inject这项服务foteAPIservice.

    UPDATE作为@dtabuenc说这将是最好不要追加Service一个module名称.

    2023-02-13 18:33 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有