当我把服务放在另一个文件上时,Angular会抛出一个错误

Angular throws an error when I have my service at a different file

本文关键字:错误 一个 Angular 服务 另一个 文件      更新时间:2023-11-16

我有如下服务:

var app = angular.module('app');
app.service('messagingService', function($http){
this.getMessages = function(offset, limit, successCallback, errorCallback){
// some stuff goes here
};
});

我包括这个文件,然后我包括我的控制器文件。

我的控制器像这样启动

function Inbox($scope, $http, messagingService) {
}

但是当我加载我的页面时,我得到以下错误:

错误:[$injector:unp]http://errors.angularjs.org/undefined/$injector/unp?p0=消息服务提供商%20%3C-%20消息服务出现错误()在https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:6:453在https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:32:320在Object.c〔as get〕(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:29:461)在https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:32:388在c(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:29:461)在d(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:30:130)在Object.Xb.实例化(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:31:284)$get(https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:61:304)在https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:48:476

当我在和控制器相同的文件中使用我的服务代码时,它工作得很好。我在这里错过了什么?感谢

您需要将控制器连接到模块。

var app = angular.module('app');
app.service('messagingService', function($http){
this.getMessages = function(offset, limit, successCallback, errorCallback){
   // some stuff goes here
 };
});
app.controller('Inbox',['$scope', '$http', 'messagingService',function($scope, $http, messagingService){}])

好的方法是将服务作为依赖项注入,例如:

var app = angular.module('ur_app_name')
app.service('messagingService', function($http){
this.getMessages = function(offset, limit, successCallback, errorCallback){
 //some stuff goes here
};
app.controller('GreetingController', ['$scope','messagingService' function($scope,messagingService) {
 //something here
})

尝试以下操作:

var app = angular.module('app', ['app.services']); 

在您的app.js 中

然后在您的服务中。js

var services = angular.module('app.services');
services('messagingService', function($http){....
相关文章: