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