AngularJS将服务注入多个控制器
发布时间:2020-12-17 17:48:44 所属栏目:安全 来源:网络整理
导读:我在自己的模块中定义了一个服务: angular.module('foteDatasetsService',[]) .factory('foteAPIservice',function($http) { var foteAPI = {}; foteAPI.getDatasets = function() { return $http({ method: 'JSONP',url: 'http://localhost:8080/datasets?
我在自己的模块中定义了一个服务:
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','foteDatasetsService',foteAPIservice) { ... }]); 它给了我这个错误: Error: [$injector:unpr] Unknown provider: foteDatasetsServiceProvider <- foteDatasetsService 编辑:我希望能够将此服务注入3个需要获取相同信息的控制器. 任何想法为什么工厂没有创建提供商?我迷失在那一个…… 解决方法
而不是这个:
angular.module('foteRequests').controller('foteRequestsController',foteAPIservice) { ... }]); 试试这个: angular.module('foteRequests').controller('foteRequestsController','foteAPIservice',foteAPIservice) { ... }]); 您已经注入了foteDatasetsService,现在您只想注入服务foteAPIservice. 更新为@dtabuenc评论说最好不要在模块名称中附加Service. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |