我的应用程序的基本模型具有status
属性。
我们假设,为简单起见,该状态可能是待定或已删除。
我有一个带有这两个状态值的上层菜单,当您单击其中一个时,您会看到具有此状态的所有对象(我使用路由器触发过滤器)。
我的问题是我需要为每个状态绘制一个不同的模板。
我想知道这个问题的最佳解决方案是什么 我想为每个状态创建一个不同的视图,但后来我不知道如何在集合级别处理它 我还考虑过创建不同的模板并在模型视图级别处理它,但是再次 - 我不知道它是否可能,如果是 - 如何。
最后,我可以使用相同的模板和视图解决它,隐藏视图中不必要的内容,但是在我看来代码变得非常难看。
想法?谢谢!
答案 0 :(得分:2)
如果要为每种状态创建不同的视图,可以这样做:
Router {
clickDeletedMenu : {
var collection = new MyCollection();
var deletedView = new DeletedView({ model : collection });
collection.fetch({ status : 'deleted' }); // filter deleted objects
},
clickPendingMenu : {
var collection = new MyCollection();
var pendingView = new PendingView({ model : collection });
collection.fetch({ status : 'pending' }); // filter deleted objects
},
}
如果您想创建不同的模板,可以这样做:
View {
render : {
if (this.model.status == 'deleted') {
// render deleted template
} else {
// render pending template
}
}
}
最后,在我看来,您可以使用相同的模板和视图,并隐藏模板内不必要的视图。
nb :代码仅用于说明这个想法,它不会执行:)