Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从RESTful服务查看主干网中的数据_Javascript_Python_Web Services_Backbone.js_Flask - Fatal编程技术网

Javascript 从RESTful服务查看主干网中的数据

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}]} 但这些条目不会显示在

我试图查看从服务导入的集合,在客户端使用主干,并将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}]}
但这些条目不会显示在我的页面上,即使我使用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;
     } 
})

尝试重写集合的方法以返回条目数组。这就成功了,谢谢!不客气,我将此作为完整性的答案发布。