Gen*_*tor 12 backbone.js marionette
我正在使用Marionette CompositeView来渲染一个html表.效果很好!现在我想在集合中没有记录时显示一条消息.我目前正在使用emptyView属性来呈现此消息.但是,消息将在表包装器中呈现,并且表列标题仍然可见.不完全是我想要的.理想情况下,我想隐藏/删除表并显示空记录视图,然后在添加记录时显示它.我正在努力寻找最佳方法来处理这个问题.那里有什么建议吗?
EmptyView = Marionette.ItemView.extend({
template: "#empty-template"
});
SupportMemberView = Marionette.ItemView.extend({
template: "#member-template"
});
SupportTeamView = Marionette.CompositeView.extend({
template: "#support-team-template",
itemView: SupportMemberView,
emptyView: EmptyView,
itemViewContainer: 'tbody'
});
Run Code Online (Sandbox Code Playgroud)
接受的答案强加了空视图和模板之间的依赖关系,这感觉不对.
我认为另一种方法是在复合视图中使用动态模板.这是通过覆盖基本View getTemplate()方法完成的.因此,您的复合视图将定义如下,假设您可以访问underscore.js库或等效替换"_.isEmpty()"函数:
SupportTeamView = Marionette.CompositeView.extend({
getTemplate: function() {
if (_.isEmpty(this.collection)) {
return "#empty-template"
} else {
return "#support-team-template";
}
itemView: SupportMemberView,
emptyView: EmptyView,
itemViewContainer: 'tbody'
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8904 次 |
| 最近记录: |