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

Posted

技术标签:

【中文标题】将 AJAX 回调数据转换为 Backbone 模型【英文标题】:Convert AJAX callback data to Backbone model 【发布时间】:2015-07-01 00:49:34 【问题描述】:

有没有办法将成功回调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 的视图作为其模型。 然而,当程序调用渲染函数时,模型显示为[Object](基于console.log),所以我假设data作为对象传递,而不是主干模型。

注意: App.Collections.Image 依赖于另一个集合。它工作正常,无需担心。

【问题讨论】:

【参考方案1】:

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

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

注意:当您获取集合并使用响应来启动模型时,我不确定您要实现什么目标。

【讨论】:

以上是关于将 AJAX 回调数据转换为 Backbone 模型的主要内容,如果未能解决你的问题,请参考以下文章

覆盖Backbone.ajax方法以使用cordovaHTTP

js实现无刷新表单提交文件,将ajax请求转换为form请求方法

在 Express JS 中为 Ajax 设置 REST 路由,仅用于 Backbone

骨干.js分页

Backbone.js:未达到路由器回调

Ajax不执行回调函数的原因(转)