Javascript 从RESTful服务查看主干网中的数据
我试图查看从服务导入的集合,在客户端使用主干,并将python/flask作为服务。当我发出GET请求时,我将返回以下数据:Javascript 从RESTful服务查看主干网中的数据,javascript,python,web-services,backbone.js,flask,Javascript,Python,Web Services,Backbone.js,Flask,我试图查看从服务导入的集合,在客户端使用主干,并将python/flask作为服务。当我发出GET请求时,我将返回以下数据: {"entries": [{"Title": "my title 1", "Description": "My desc 1", "Info": "Info 1", "ids": 1}, {"Title": "my title 2", "Description": "My desc 2", "Info": "Info 2", "ids": 2}]} 但这些条目不会显示在
{"entries": [{"Title": "my title 1", "Description": "My desc 1", "Info": "Info 1", "ids": 1}, {"Title": "my title 2", "Description": "My desc 2", "Info": "Info 2", "ids": 2}]}
但这些条目不会显示在我的页面上,即使我使用fetch。这是我的ListView代码:
var app = app || {};
app.ContactListView = Backbone.View.extend({
el: '#contacts',
initialize: function () {
this.collection = new app.ContactList();
this.collection.fetch({reset: true});
this.render();
this.listenTo( this.collection, 'reset', this.render );
},
render: function () {
this.collection.each(function( item ){
this.renderContact( item );
}, this );
},
renderContact: function ( item ) {
var contactView = new app.ContactView({
model: item
});
this.$('#ContactTable').append( contactView.render().el );
}
});
原因可能是什么?原因是,您的集合需要一个模型数组作为响应,但您的服务在条目下返回该数组。从 每当集合的模型被调用时,主干就会调用parse 由服务器返回,在fetch中。函数被传递给原始 响应对象,并应返回要创建的模型属性的数组 添加到集合中 为了解决这个问题,您可以简单地重写方法以返回模型数组 例如:
app.ContactList = Backbone.Collection.extend({
//...
parse: function (response) {
return response.entries;
}
})
尝试重写集合的方法以返回条目数组。这就成功了,谢谢!不客气,我将此作为完整性的答案发布。