javascript - “EventModel”必须从 $get 工厂方法返回一个值

标签 javascript angularjs

我更改了我的服务(模型)以与此一起使用,现在给出了这个奇怪的错误,我搜索并发现这将是语法错误,该值不会返回,但我认为在我的情况下是问题不是这个。

错误是:

Provider 'EventModel' must return a value from $get factory method.

这是我的代码:

'use strict';
var EventModel = function($http) {
 this.url       = 'http://localhost:3000/api/events';
 this.$http = $http;
};

EventModel.prototype = {
    find: function() {
        return this.$http.get(this.url).then(this.extract);
    },

    extract: function(result) {
        return result.data;
    }
};

angular
  .module('siteApp')
  .factory('EventModel', [
    '$http',
    EventModel
  ]);

可能是什么?

谢谢。

最佳答案

按照您定义的方式,您需要使用的是服务配方,而不是工厂

angular
  .module('siteApp')
  .service('EventModel', ['$http', EventModel]);

如果您使用工厂配方注册,则构造函数需要返回实例,在您的情况下,您不会返回任何内容,并且工厂配方不会发生任何新建。相反,您有一个适当的构造函数,并且通过您的实现,您通常会寻找用 new 运算符调用它,而这正是 service 配方的作用。

关于javascript - “EventModel”必须从 $get 工厂方法返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32514872/

相关文章:

javascript - orderBy angularJS 在 ng-switch 里面 ng-repeat 里面?

javascript - 使用 Angular.js 和 CSS 在 div 上淡入淡出动画

javascript - 在javascript中获取总秒数

javascript - 如何在 React Native 中截图测试?

angularjs - 提供 url 到 angular $http.get/.post 的最佳方式

javascript - js 和 jquery.dataTables.js 出现错误 : Uncaught SyntaxError: Unexpected token < in jquery-ui.

javascript - 无法访问 ms-appdata :///local after taking a photo

javascript - React 是否去掉了关键属性

javascript - 如何循环数组中的本地存储对象或转换 JSON 数据

c# - 条件确认按钮扩展器