2017-01-18 6 views
0

У меня есть эта ошибка:

Error: [$injector:unpr] http://errors.angularjs.org/1.5.6/ $injector/unpr?p0=DataServiceProvider%20%3C-%20DataService%20%3C-%20SignupController

Я предполагаю, что это происходит потому, что DataService не найден, поскольку она определена в другом каталог? Или это не определено правильно?

SignUpController (принадлежит к основному приложению, расположенной в src/public/xxx/xxx.controller.js.):

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

SignupController.$inject = ['DataService']; 
function SignupController(DataService) { 
    // do stuff 
} 

app.controller("SignupController", SignupController); 

DataService расположен в data/dataservice.js

function DataService(){ 
    // do stuff 
} 
var datamodule=angular.module('data'); 
datamodule.service('DataService',DataService); 

Я считаю, что 'данные' правильно объявлены в data/data.module.js

angular.module('data', []); 

и был введен в Основное приложение в src/public/xxx/xxx.js

angular.module('app', ['ui.router', 'common','data']); 

справочного порядке:

<script src="data/data.module.js" type="text/javascript"></script> 
<script src="data/dataservice.js" type="text/javascript"></script> 
<script src="src/public/xxx.js" type="text/javascript"></script> 
<script src="src/public/xxx/xxx.controller.js" type="text/javascript"></script> 
+1

'DataServiceProvider' - это только один из углов, которые помогут вам решить вашу проблему. ваш модуль 'data' загружен в основное приложение? –

+1

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

+0

@ DanielA.White да, среди других вещей 'angular.module ('app', ['ui.router ',' common ',' data ']); ', а datamodule объявлен как' angular.module (' data ', []); ' –

ответ

-1

Порядка импорт вопросов JS в данном случае. Импортируйте данные/dataservice.js перед любым JS, где вы хотели использовать эту услугу, или вставляете услугу

+0

i объявлен модуль «данных». Не следует ли сначала ссылаться на модуль, а затем на службу? –

+0

Это неверно для зависимостей с угловым модулем. – Phil

+0

@DylanChensky. Вы правы. Сначала модуль приходит, а затем перед использованием вашего контроллера JS вы должны импортировать ваш сервис JS, который вы хотите ввести. В вашем случае, если вы пытаетесь внедрить свою услугу в RegistrationController, тогда вам нужно импортировать JS-файл службы до файла JS RegistrationController – CrazyMac