调用Backbone集合的获取函数时出现“未定义不是函数”错误
问题描述:
我在调用fetch
函数时出现错误。调用Backbone集合的获取函数时出现“未定义不是函数”错误
Undefined is not a function Error in Backbone js
var models = Backbone.Model.extend({
userId: function() {
return this.get('userId');
},
id: function() {
return this.get('id');
},
body: function() {
return this.get('body');
}
});
//Collections
var todolistStore = Backbone.Collection.extend({
url: function() {
return 'https://jsonplaceholder.typicode.com/posts'
},
model: models,
parse: function(response) {
return response;
}
});
todolistStore.fetch();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
答
有几个问题。我正在建立@ChrisG的答案。
-
您需要实例化一个集合。下面是我的代码:
var Model = Backbone.Model.extend({ userId: function() { return this.get('userId'); }, id: function() { return this.get('id'); }, body: function() { return this.get('body'); } }); //Collections var TodoListStore = Backbone.Collection.extend({ url: function() { return 'https://jsonplaceholder.typicode.com/posts' }, model: Model, parse: function(response) { return response; } }); var todolistStore = new TodoListStore(); todolistStore.fetch();
-
我更新下划线的版本和骨干
https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js
看起来你需要先实例:'VAR的MyStore =新todolistStore() ; myStore.fetch();' –
@ChrisG仍然不能正常工作 –
您正在使用旧版本的下划线和主干。当我使用当前版本时,错误消失。 –