[英]Re-render a view
在事件发生后重新渲染视图的最佳方法是什么(例如,提交便笺)。 在下面的代码中,我想重新渲染视图以显示刚刚添加的注释。
var NotesView = SectionBaseView.extend({
model: app.models.Note,
events: {
'submit': 'Notes'
},
Notes: function (e) {
e.preventDefault();
var details = new this.model($('form').serializeObject());
details.url = '/email/Notes';
details
.save()
.done(function () {
app.notifySuccess('Note added successfully.');
});
views['#Notes'].render();
}
});
Notes视图在document.ready函数中初始化如下:
views['#Notes'] = new NotesView({ el: '#Notes', template: app.templates.Notes });
我尝试使用views ['#Notes']。render(); 但这似乎不起作用。
渲染的默认实现是无操作。 用您的代码覆盖此功能,该代码从模型数据中呈现视图模板,并使用新的HTML更新this.el。 一个好的约定是在渲染结束时返回此值以启用链接调用。 文件
var NotesView = SectionBaseView.extend({
model: app.models.Note,
events: {
'submit': 'Notes'
},
render : function(){
//your code
return this;
},
Notes: function (e) {
var that = this;
e.preventDefault();
var details = new this.model($('form').serializeObject());
details.url = '/email/Notes';
details
.save()
.done(function () {
app.notifySuccess('Note added successfully.');
});
that.render();
}
});
在document.ready上
views['#Notes'] = new NotesView({ el: '#Notes', template: app.templates.Notes });
views['#Notes'].render();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.