【问题标题】:Object not defined by Angular.js resource factoryAngular.js 资源工厂未定义对象
【发布时间】:2014-10-08 13:58:55
【问题描述】:

在我正在构建的 Angular 应用程序中,我发现对象未定义错误。

触发错误的对象是下面 giveMeCoffee 函数中的 'CoffeeOrder' 对象。整个源代码在Github

对于我在angular.js documentation 中读到的内容,这应该可以工作(参见底部的代码 sn-p)。但是错误信息不是很有帮助。

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'});
});

【问题讨论】:

  • 也许它对您没有帮助,但这并不意味着它对我们没有帮助。发布准确和完整的错误/堆栈跟踪。
  • 感谢您的回答。错误消息正是“CoffeeOrder 未定义”,堆栈跟踪指向使用 CoffeeOrder 对象的行。您在下面的答案有效!猜猜我还有很多东西要学习角度。 :)

标签: angularjs angularjs-resource


【解决方案1】:

CoffeeOrder 是一项服务。服务不是全局可用的对象。它必须注入到其他 Angular 组件中,而你没有注入它:

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

【讨论】:

    猜你喜欢
    • 2017-09-28
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 2010-11-25
    • 2012-04-12
    相关资源
    最近更新 更多