Неопределенный объект после использования сервиса Angular

0

Создал эту службу, но получил неопределенную ошибку объекта. Таким образом, объект является нулевым, но почему, я чувствую, что делаю это правильно.

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

app.factory('RollerService', function() {
    var rollers = [
        'roller1',
        'roller2',
        'roller3'
    ];

    return {
        get: function() {
            return rollers;
        },
    };
});

app.controller('Index', ['$scope',function($scope,RollerService) {
    $scope.rollers = RollerService.get;
}]);

TypeError: Невозможно прочитать свойство "получить" неопределенного

Начинающий в общем Javascript, так что некоторые объяснения были бы приятными.

Теги:
service

1 ответ

2
Лучший ответ

Вы не ввели свой RollerService:

app.controller('Index', ['$scope', 'RollerService', function($scope, RollerService) {
  $scope.rollers = RollerService.get;
}]);

Инъекция угловой зависимости пытается быть умной, анализируя имя ваших параметров функции. Однако для защиты от проблем, вызванных изменением кода (который превращает имена параметров в неясные имена, такие как a, b и т.д.), Вы должны явно аннотировать свои функции, указав зависимости как строки, прежде чем определять сама функция.

Прочитайте больше:

Как только вы поймете, как работает Угловая зависимость, вы можете использовать такой инструмент, как ng-annotate чтобы избавить вас от необходимости вручную устанавливать $inject.

  • 0
    Я думал, что вводил это с 'RollerService' в параметрах функции? Почему это должно быть определено дважды?
  • 0
    Только что обновил мой ответ.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню