Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Backbone.js 解析+;backbonejs_Backbone.js - Fatal编程技术网

Backbone.js 解析+;backbonejs

Backbone.js 解析+;backbonejs,backbone.js,Backbone.js,如何解析响应值。。 我想从json值中获取json值……但在解析中遇到问题 var ListView = Backbone.View.extend({ el: '#app-container', initialize: function() { _.bindAll(this,"render"); console.log('ListView init.'); this.counter = 0; this.collec

如何解析响应值。。 我想从json值中获取json值……但在解析中遇到问题

var ListView = Backbone.View.extend({
    el: '#app-container',

    initialize: function() {
        _.bindAll(this,"render");
        console.log('ListView init.');
        this.counter = 0;
        this.collection = new FieldCollection();
        this.collection;
        this.render(this.collection);
    },

    events: {
        'click #add': 'addItem'
    },

   render: function(val) {
        console.log(val);
        console.log('Render called.');

    },
});
我的json如下所示

[
{
    "name": "qqqqqqqqqqqqqqqqqqq",
    "img": "qqqqqqqqqqqqqqqqqqqq"
},
{
    "name": "eeeeeeeeeeeeeeeeeee",
    "img": "eeeeeeeeeeeeeeeeeee"
},
{
    "name": "ggggggggggggggggggg",
    "img": "gggggggggggggggggggg"
}
]
我的问题是如何解析响应值

如何访问视图中的json值

var FieldCollection = Backbone.Collection.extend({
    defaults: {
        model: Field
    },
    model: Field,
    url: 'http://localhost:8080/backbonejs/myjsoncollection.json',
    initialize: function() {
        console.log('FieldCollection init.');
    },
    parse: function(response) {
      console.log(response);
      return response;
    }
});
这是全部代码

$(function(){

var Field = Backbone.Model.extend({
    defaults: {
        name: "shaleen",
        img: "not found",
    },
    initialize: function() {
       // console.log(this.attributes.name);
    }
});
 var FieldCollection = Backbone.Collection.extend({
    defaults: {
        model: Field
    },
    model: Field,
    url: 'http://localhost:8080/backbonejs/myjsoncollection.json',
    initialize: function() {
        console.log('FieldCollection init.');
    },
/*  parse: function(response) {
      console.log(response);
      return response;
    }*/
});

var ListView = Backbone.View.extend({
    el: '#app-container',
    initialize: function() {
        _.bindAll(this,"render");
        console.log('ListView init.');
        this.counter = 0;
        var jsonfield = new FieldCollection();
        jsonfield.fetch();
        this.render(jsonfield);
    },
   render:function(collection){
        _.each(collection, function(model){
            console.log(model.get('name'));
        });

        _.each(function(model){
            console.log(model.get('name'));
            console.log(model.get('img'));
        },this);
    }
});

var listView = new ListView();

}))

解析函数是可选的,如果从服务器接收数据后发生任何特殊情况,只需实现它。为了隔离可能的错误源,我将首先通过不连接服务器来简化您的方法。请运行以下代码:

var Field = Backbone.Model.extend({});

var FieldCollection = Backbone.Collection.extend({
    model: Field,
});

var ListView = Backbone.View.extend({
    el: '#app-container',

    initialize: function() {
        this.collection = new FieldCollection();
        this.collection.add([{name:'name1',img:'img1'},{name:'name2',img:'img2'}]);
        this.render(this.collection);
    },

    render(collection){
        collection.each(function(model){
            console.log(model.get('name')+' '+model.get('img'));
    },this);
});
如果可行,请应用以下2项更改:

  • 更改集合以包含url:

    var FieldCollection = Backbone.Collection.extend({
        model: Field,
        url='http://localhost:8080/backbonejs/myjsoncollection.json'
    });
    
  • 更改视图的initialize函数以执行提取:

    initialize: function() {
        this.collection = new FieldCollection();
        this.collection.fetch();
        this.render(this.collection);
    },
    

  • 请先运行简化版,如果这对扩展版有效。

    很抱歉,但请不要完全了解您要实现的目标以及您的问题所在。集合中的集合和模型不包含json数据,不需要解析。它们已经是java脚本对象了。我想从json文件中获取json数据…我是主干网新手,所以dnt不太了解abt模型和集合…从文件中获取数据的代码在哪里???尚不清楚您想做什么以及如何做Hanks schacki…我检查了我的代码…我忘了添加解析函数…再次查看帖子这就是我要找的..responseText:“[↵ { ↵ "名称“:“QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ,↵ “img”:“QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ↵ }, ↵ { ↵ “名称”:“eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,↵ “img”:“EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE↵ }, ↵ { ↵ “姓名”:“gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg,↵ “img”:“gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg↵ } ↵]“这是我从集合中删除解析函数时得到的响应…如何修复此问题…您是否已设法使用呈现函数检查我的最新更新?您从未对集合进行过提取,因此将不会对服务器进行任何调用,也不会进行任何解析。我的最终建议:a)按照您执行的顺序提供完整代码。”n it和b)手动添加模型和模型内容,而无需转到服务器,这样我们就可以在向服务器端添加任何新的复杂性之前检查客户端,因此您可以执行以下操作:collection.add([{name:'…',img:'…}])