我的应用程序的基本模型具有一个status
属性。为了简单起见,假设状态可能是待定或已删除。
我有一个带有这两个状态值的上层菜单,当您单击其中的一个时,您会看到所有具有此状态的对象(我使用路由器来触发过滤器)。
我的问题是我需要为每种状态绘制一个不同的模板。
我想知道什么是解决此问题的最佳解决方案。
我曾想为每种状态创建一个不同的视图,但是后来我不知道如何在集合级别处理它。
我还考虑过创建不同的模板,并在模型视图级别进行处理,但是,再次-我不知道这是否可能,如果可以的话-怎么做。
最后,我可以使用相同的模板和视图来解决它,将视图内不必要的东西隐藏起来,但是从我的角度来看,代码变得非常难看。
想法??谢谢!
如果要为每种状态创建不同的视图,请按以下方式进行操作:
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:该代码仅用于说明想法,不会执行:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句