使用backbone.js 从视图访问模型数据
Posted
技术标签:
【中文标题】使用backbone.js 从视图访问模型数据【英文标题】:Accessing model data from a view with backbone.js 【发布时间】:2012-11-12 13:14:19 【问题描述】:我有以下代码,但我很难让我的视图呈现模板而不是我的模型。如果我通过我的模型渲染车把模板但想将我的代码分离到视图中,这一切都很好。
var DataModel = Backbone.Model.extend(
initialize: function ()
$.getJSON('js/data.json',function(data)
$('.one-wrapper').append(Handlebars.compile($('#one-template').html())(data));
$('.one-asset-loader').fadeOut('slow');
);
,
defaults : function ()
,
);
var StructureView = Backbone.View.extend (
initialize: function ()
);
var structureView = new StructureView(model: new DataModel());
【问题讨论】:
你的模型不应该做任何直接的 DOM 操作。您应该有一个视图来处理模型状态更改所提示的内容。 【参考方案1】:您可以使用this.model
访问视图内的模型。
您的代码应该类似于:
var StructureView = Backbone.View.extend (
initialize: function ()
_.bindAll(this);
this.render();
this.model.on('change',this.render);
,
render: function()
$('.one-wrapper').empty().append(Handlebars.compile($('#one-template').html())( this.model.toJSON() ));
);
假设您的模型实际包含数据,这将起作用。为此,您需要使用model.url
和model.fetch()
(不是$.getJSON
)
【讨论】:
以上是关于使用backbone.js 从视图访问模型数据的主要内容,如果未能解决你的问题,请参考以下文章
在Backbone.js视图中动态设置id和className