2015-10-22 2 views
0

я объявил мое приложение и есть один контроллер (для демонстрационных целей):неопределенные переменные передачи данных с использованием службы

var module = angular.module("app", []) 


    module.controller("modalCtrl", ["$scope", function ($scope, dataService) { 


    $scope.printEntity = function() { 
     console.log(dataService.getEntityArray()); 
    } 

}]); 

И сервис:

module.factory("dataService", function() { 

var entityArrayService = [1,2]; 

return { 

    getEntityArray: function() { 
     return entityArrayService; 
    } 

}; 

}); 

Когда я называю $scope.printEntity из моего зрения, Мне всегда говорят, что dataService.getEntityArray() не определено.

Я загрузил службу как зависимость и объявил массив entityArrayService вне моего оператора return. Я смотрел высоко и низко для ответа, но безрезультатно. Моя цель состоит в том, чтобы разделить кусок данных между двумя контроллерами, но в тот момент я не могу даже использовать один контроллер для извлечения данных.

ответ

1

Услуга не загружается в качестве зависимости. Измените эту строку:

module.controller("modalCtrl", ["$scope", function ($scope, dataService) { 

к этому:

module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) { 
0

Вы используете строгий синтаксис зависимостей декларации. Поэтому, если вы добавите параметр в свой контроллер, вы также должны добавить его декларацию.

module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) { 
    ... 
} 
0

Вы не вводили dataService в свой контроллер. Попробуйте с:

module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) { 
    // ... 
}); 
0

инъекцией службы в контроллере отсутствует:

пожалуйста исправить на:

... 
module.controller("modalCtrl", ["$scope", "dataService", function ($scope, dataService) { 
... 

Другой код правильный.

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