Объект не определен фабрикой ресурсов Angular.js

Я получаю сообщение об ошибке объекта не определено в угловом приложении, которое я создаю.

Объектом, который вызывает ошибку, является объект «CoffeeOrder» в функции giveMeCoffee ниже. Весь исходный код находится на Github.

О том, что я прочитал в документации angular.js , это должно работать (см. фрагмент кода внизу). Но сообщение об ошибке не очень полезно.

var coffeeApp = angular.module('coffeeApp', ['ngResource']);

coffeeApp.controller('OrderController', function($scope) {

$scope.types = [
                  {name:'black', family:'coffee'}, 
                  {name:'latte', family:'coffee'}, 
                  {name:'cappuccino', family:'coffee'}, 
                  {name:'tea', family:'other'}
                  ];

  $scope.sizes = ['S', 'M', 'L'];

  $scope.giveMeCoffee = function() {
      CoffeeOrder.save({id: 1}, $scope.drink);
  }
});

coffeeApp.factory('CoffeeOrder', function($resource) {
    return $resource('/service/coffeeshop/:id/order/', {id: '@coffeeShopId'});
});

person Pablo    schedule 08.10.2014    source источник
comment
Может быть, это не полезно для вас, но это не значит, что это не полезно для нас. Опубликуйте точную и полную трассировку ошибки/стека.   -  person JB Nizet    schedule 08.10.2014
comment
Спасибо за ответ. Сообщение об ошибке было именно таким: CoffeeOrder не определен, а трассировка стека указывала на строку, в которой используется объект CoffeeOrder. Ваш ответ ниже сработал! Думаю, мне еще многое предстоит узнать об angular. :)   -  person Pablo    schedule 08.10.2014


Ответы (1)


CoffeeOrder — это сервис. Служба не является глобально доступным объектом. Его нужно внедрить в другие компоненты Angular, а вы его не вводили:

coffeeApp.controller('OrderController', function($scope, CoffeeOrder) {
person JB Nizet    schedule 08.10.2014