我有一个如下的答案列表:
每个列表项都是一个主干模型。
{
title: 'answer title...',
content: 'answer content...',
voteStatus: 'up'
}
当我单击赞成或反对投票时,模型voteStatus
将发生变化,并且此答案项将重新呈现。
如果答案内容中有图片,图片也会重新渲染,但这不是我想要的。
当我刚刚更改时,我怎么能重新渲染投票按钮voteStatus
?
我有一个如下的答案列表:
每个列表项都是一个主干模型。
{
title: 'answer title...',
content: 'answer content...',
voteStatus: 'up'
}
当我单击赞成或反对投票时,模型voteStatus
将发生变化,并且此答案项将重新呈现。
如果答案内容中有图片,图片也会重新渲染,但这不是我想要的。
当我刚刚更改时,我怎么能重新渲染投票按钮voteStatus
?
在你的内部有一个子视图AnswerView
,它只负责渲染投票箭头,VotingArrowsView
. initialize
您将在函数中初始化此子视图AnswerView
,然后el
在父视图中将子视图添加到el
父render
视图:
var AnswerView = Backbone.View.extend({
initialize: function(options){
this.template = _.template($('#answerTmpl').html());
this.votingArrowsView = new VotingArrowsView({ model: this.model });
...
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
this.$el.prepend(this.votingArrowsView.render().el);
return this;
},
...
});
var VotingArrowsView = Backbone.View.extend({
initialize: function(options){
this.template = _.template($('#votingArrowsTmpl').html());
this.listenTo(this.model, 'change:voteStatus', this.render);
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});