Javascript 从Backbone.js中的非JSON服务器响应创建模型实例
我有一个带有关联视图的规范模型:Javascript 从Backbone.js中的非JSON服务器响应创建模型实例,javascript,ajax,django,backbone.js,Javascript,Ajax,Django,Backbone.js,我有一个带有关联视图的规范模型: var Item = Backbone.Model.extend({ url: function() { return "/item/123" } }); var ItemView = Backbone.View.extend({}); 但是,在服务器端,在url“/item/123”处,我的Django应用程序不呈现JSON格式的内容,而是一个设计为直接插入主页内的HTML模板。如何在不大幅更改服务器提供动态内容的方式的情况下渲染模型?是否有
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调用。如果您还没有,请查看django应用程序Tastypie,它是后端到主干和类似应用程序的最佳解决方案
如果不使用代码,很难判断将其全部转移到Tastype与根据每个案例滚动您自己的解决方案相比需要做多少工作,请查看文档。我认为您不应该在
模型中加载模板。加载和呈现模板通常是视图的工作。尝试在视图的呈现
方法中使用AJAX直接加载HTML:
var ItemView = Backbone.View.extend({
render: function(){
var that = this;
$.get('/item/123', function(html){
that.$el.html(html);
});
return this;
}
});
我意识到这个解决方案对于Backbone.js来说并不完美,但开始重构过程将是完美的。