javascript - 从 Backbone.js 中的非 JSON 服务器响应创建模型实例

标签 javascript ajax django backbone.js

我有一个带有关联 View 的规范模型:

var Item = Backbone.Model.extend({
  url: function() {
    return "/item/123"
  }
});
var ItemView = Backbone.View.extend({});

但是,在服务器端,在 url“/item/123”处,我的 Django 应用程序不呈现 JSON 格式的内容,而是一个旨在直接插入主页面的 HTML 模板。如何在不彻底改变我的服务器提供动态内容的方式的情况下渲染模型?有可能还是我误解了 Backbone.js 背后的整个哲学?

只是给你一些背景知识:我正在通过集成 Backbone.js 来重构 Django Web 应用程序的 JS 代码。该应用程序本身不是很大,但它大量使用了 Ajax 调用。

最佳答案

我认为您不应该在模型 中加载模板。模板的加载和呈现通常是 view 的工作。尝试在 viewrender 方法中使用 AJAX 直接加载 HTML:

 var ItemView = Backbone.View.extend({
  render: function(){
    var that = this;
    $.get('/item/123', function(html){
      that.$el.html(html);
    });
    return this;
  }
});

关于javascript - 从 Backbone.js 中的非 JSON 服务器响应创建模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15960498/

相关文章:

python - Django 中的参数化属性

python - 在 Django 管理端对具有相同数据的模型的 my-sql 列对象进行分组

javascript - 需要帮助将回调转换为 Promise

javascript - 在 Page_Load() 中添加 OnLoad()?

javascript - html5 canvas - 是否需要内联定义宽度/高度?

javascript - 为什么我的 XHR 调用在等待对方返回响应

jquery - ajax超时回调函数

javascript - jQuery src 选择器问题

javascript - Django按钮ajax点击

python - 如何在模型中设置元类中未定义的字段