新手使用骨干,并有一个非常简单的应用程序。基本上有Clients
和ClientItems
。我有一个观点来显示所有的客户端,如果你点击一个客户端,你会看到他们的ClientItems。去这个ClientItems视图应该隐藏客户端视图并返回到客户端应该隐藏ClientItems。现在,在我的每个视图的render()
函数中,它正在浏览集合并动态地将内容添加到页面。当我在两者之间来回切换(使用后退按钮)时,我并不需要再次完全渲染,因为所有数据都在页面中,只是隐藏起来。这个逻辑应该到哪里去?现在我在render()
函数中使用它,但它感觉马虎,处理这个问题的首选方法是什么?骨干显示/隐藏渲染的视图最佳实践
7
A
回答
11
我们使用全局变量App
与整个应用程序中使用几种常见的功能:
var App = {
initialize : function() {
App.views = {
clientView : new ClientsView(),
clientItemView : new ClientsItemsView()
}
},
showView: function(view){
if(App.views.current != undefined){
$(App.views.current.el).hide();
}
App.views.current = view;
$(App.views.current.el).show();
},
...
}
然后我用这个App
从应用程序的其他部分:
App.showView(App.views.clientView);
5
IntoTheVoid的解决方案是好的 - 很高兴有一个地方可以隐藏/显示视图。但是,你如何激活逻辑?
根据我的经验,路由器是最好的地方。当路线改变并且调用适当的功能时,您应该更新活动的可见视图。
如果您需要同时显示多个视图,该怎么办?如果您的主视图在路由更改时总是发生更改,并且有多个附属粘滞视图,则无需担心。但是,如果它比这更复杂,可以考虑创建一个ComboView,它将所有相关视图打包成一个包含el
节点的视图。这样,上述逻辑仍然有效,并且您的路由器功能不会用于管理目前可见视图的逻辑。
相关问题
- 1. 骨干集/模型的最佳实践
- 2. 骨干查看保存(最佳实践)
- 3. 骨干关系hasmany最佳实践
- 4. 骨干:渲染
- 5. 让骨干等待渲染视图
- 6. 骨干javascript视图不重渲染
- 7. 骨干视图渲染不创建
- 8. 方法隐藏/显示骨干模型视图
- 9. jQuery的最佳实践:隐藏/ DoSomething的/显示序列
- 10. 用jQuery隐藏/显示多个div的最佳实践
- 11. WPF设置页面;隐藏/显示控件;最佳实践
- 12. 渲染视图中的骨干子视图
- 13. 隐藏空白空间最佳实践
- 14. 骨干视图覆盖渲染功能失去子视图
- 15. 骨干:渲染语法
- 16. 在CakePHP视图中放置显示逻辑的最佳实践
- 17. select2内部渲染方法的骨干视图
- 18. 骨干集合中每个模型的渲染视图
- 19. 骨干视图不渲染我的模板
- 20. 为什么我的骨干视图渲染“undefined”在顶部?
- 21. 构建和渲染骨干视图相对于元素点击
- 22. 为什么这个骨干视图不能正确渲染?
- 23. 骨干提取模型然后渲染视图
- 24. 骨干JS重新渲染离开视图eventless
- 25. SVG没有正确渲染作为骨干视图
- 26. 渲染子视图在骨干中查看
- 27. 骨干列表视图/渲染列表查看项目
- 28. 试图隐藏下拉骨干错误
- 29. 在DirectX 11中渲染精灵的最佳实践是什么?
- 30. 显示/隐藏视图
看起来不错。我看到你在'initialize'中创建了视图。这是常见的事情吗?你会对收藏做同样的事吗?现在对我有意义,因为我只需要一个单一的实例,但我仍然在学习。 – Brandon 2012-02-22 17:40:08
我们只是立即创建视图,所有其他的东西都是在需要时创建的。您当然可以在第一次需要时添加require.js和init视图。 – 2012-02-22 17:41:57
我们正在使用App.views.current.show(),以便可以在那里执行任何有关显示的其他逻辑(可能会有其他事件侦听器发生更改) – 2013-02-06 22:40:11