0

在 Backbone 中处理静态视图的最佳方法是什么?

我当前的方法是使用 css 类或 javascript(带或不带 jquery)显示或隐藏视图。使用此方法时出现问题;一旦视图嵌套得太深,控制每个视图就会变得复杂。我的方法的一个例子是我的网站代码),但它的嵌套不够深,不会引起问题。

我的一个建议是像处理动态内容一样,使用模板和模型,并渲染所需的视图。有了这个,为了降低复杂性,使用看起来非常适合动态视图的木偶。


4

1 回答 1

1

我很惊讶您在使用该toggle class策略时遇到了问题。你能举一个具体的例子来说明这种情况变得混乱吗?您提到您网站的代码不是问题,那是什么?哪里有臭味?

我这样说只是因为似乎切换可见性确实是最直接的选择,您可能会想太多。除非我误解了你的用例。此外,这个问题不会有“最佳”答案。这非常依赖于情况。

编辑:

这是一个很难直接回答的高级问题。你问的关键是“我如何管理复杂的视图状态和交互”。动态/静态 html 之间的区别并不重要,无论您如何为子视图生成 html,您都面临着概述的挑战。

也就是说,您提到您正在使用主干。请记住,主干只是帮助您构建解决方案的工具,如果您觉得自己正在与它作斗争,也许您就是。

即便如此,如果我在您的评论中实施该案例并想坚持骨干约定,是的,我会按照您提到的那样做;我会将我的“静态”视图与“动态”视图相同。主干视图不是关于 html 而是更多关于交互上下文 - 听起来它是您真正关心的交互上下文。

所以我有一个View名字ProductView,它本身有一个TabContainerView. 这TabContainerView将有TabViews等等。对于重要的交互状态的每个级别,我都会沿着层次结构向下移动。然后就可以轻松跟踪状态并使用视图。需要跟踪当前可见的选项卡?将属性添加到TabContainerView. 需要隐藏由 a 触发的弹窗TabContainerView,添加一个hide方法到TabContainerView.

通过这种方式,您的视图层次结构中包含丰富的状态和事件处理程序。此外,您可以以小部件方式开发事物并使用组合来构建非常复杂的体验。

希望有帮助。

于 2014-08-03T01:24:35.173 回答