我有以下代码,但我很难让我的视图呈现模板而不是我的模型。如果我通过我的模型渲染把手模板但想将我的代码分离到视图中,这一切都可以正常工作。
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()});
答案 0 :(得分:2)
您可以使用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
)