将AJAX回调数据转换为Backbone模型

时间:2015-04-23 03:36:53

标签: javascript jquery ajax backbone.js

有没有办法将成功回调data转换为Backbone模型? 这就是我所拥有的:

App.Models.Image = Backbone.Model.extend({
  idAttribute : 'image_id'
});

App.Collections.Image = Backbone.Collection.extend({
  model : App.Models.Image,
  url : JSON_URL,
  fetchImage : function(model) {
    var self = this;
    var imageId = model.id, name = model.get('name');

    this.fetch({
      data : {
        packet : JSON.stringify({
          type : 'loadImage',
          param : {
            image_id : imageId,
            filename : name
          }
        })
      },
      type : 'POST',
      success : function(data) {    
        var `view` = new App.Views.Image({
          model : data
        });

        view.render();
      },
      error : function() {
      }
    });
  }
});

查看成功函数,我使用回调data作为模型声明了视图。 但是,当程序调用render函数时,模型显示为[Object](基于console.log),因此我假设data作为Object传递,而不是骨干模型。

注意: App.Collections.Image依赖于另一个集合。它工作正常,没有什么可担心的。

1 个答案:

答案 0 :(得分:0)

您应该将模型实例传递给视图

 var `view` = new App.Views.Image({
   model : new App.Models.Image(data)
 });

注意:我不确定您在获取集合并使用响应启动模型时尝试实现的目标。