2013-11-27 1 views
0

У меня есть службы, как на следующие один:Угловые выдает ошибку, когда у меня есть сервис на другой файл

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) { 

} 

Но когда я загружаю мою страницу я получаю следующее сообщение об ошибке:

Ошибка: [$ Инжектор: unpr]? http://errors.angularjs.org/undefined/ $ форсунки/unpr p0 = messagingServiceProvider% 20% 3C-% 20messagingService при Error() на 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 [как 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 в точке с (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:30:130) в Object.Xb.instantiate (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js:31:284) в $ получить (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

Когда я использую свой код службы в том же файле, что и контроллер это работает Что ж. Что мне здесь не хватает? Благодаря

+1

Care прикрепляя определение контроллера на ваш вопрос? – Stewie

ответ

1

необходимо подключить контроллер к модулю.

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){}]) 
0

Попробуйте следующее:

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

в вашем app.js

и затем в вашем services.js

var services = angular.module('app.services'); 

services('messagingService', function($http){.... 
1

Хороший способ внедрить услугу в зависимости, например, для:

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 
}) 
+0

https://docs.angularjs.org/guide/di ... прочитайте его для получения дополнительной информации –

Смежные вопросы