【问题标题】:Several models and views per page with backbone.js使用backbone.js,每页有几个模型和视图
【发布时间】:2011-11-07 00:36:39
【问题描述】:

我想使用backbone.js 来控制一个非常繁重的数据应用程序。

在这个小提琴 (http://jsfiddle.net/D87cg/2/) 上,您可以看到应用程序的一页(请注意,还有更多组件,如菜单、二级菜单、其他带有内容的框、页脚等)。

Web 服务返回几个 json 对象:

  • 其中包含有关规格和所有者详细信息的信息
  • 一个有“您的帐户”信息,但并未显示所有数据(虽然它是在 json 对象上发送的,但每个游戏的其他统计信息与其他一些游戏一样发送)

我的疑问是……backbone.js 可以允许每页有多个视图和模型吗?我问是因为 Route 似乎将每个路由视为整个视图中的一个状态,这反映在 URL 中,但是如果我在一个页面中有多个对象可以在不同时间更改呢?

有没有办法做到这一点?我查看了几个backbone.js 教程,但它们似乎都将一页视为视图。

我的另一个问题是......如何集成 json 响应,以便字段不固定在模型上?换句话说,如何让模型使用json文件中的属性,而不必在模型中定义它们?

提前致谢!!

【问题讨论】:

    标签: javascript model-view-controller backbone.js


    【解决方案1】:

    了解路由的目的是创建书签 URL。您可以根据需要在视口中散布任意数量的视图、模型和控制器,只要您不关心显示的特定视图集合是可收藏的项目,即当前状态display 可以由视图层次结构内部管理,而不是路由器。

    (或者你可以很聪明,将视图的状态作为可书签路由保存到服务器,并在组装视图之前获取“路由 ROUTEID 显示的内容”,但这很有趣,也很巧妙。)

    所以,是的,对于您正在讨论的那种应用程序来说,Routes 的事情有点牵强。 Backbone 可以很好地处理它。

    【讨论】:

    • 哦,非常感谢!所以...我完全放弃路线吗?因为实际上主干不是标准的 MVC,如果它只有模型和视图......我如何将一个视图更改为另一个视图?如您所见,有几个“模块”。如果每个项目有不同的视图(一个用于 SPECS,一个用于 OWNER DETAILS...),一个根据数据更改的全局视图,或者每个项目和模块一个(一个用于填充的 SPECS,一个对于空的SPECS,一个用于填充的所有者详细信息,一个用于缺少信息的所有者详细信息...)?
    • 试图成为“纯粹的 MVC” 太过分了。考虑实际的“视图”是您的 DOM 对象(HTML 和 CSS),而主干视图实际上是您的控制器:它包含用于更改模型语义逻辑的句法逻辑。它还组织了一个“视图”(和子视图)。将自己与视图“必须”渲染的想法分开,并考虑“渲染”函数只是创建并返回一个元素,然后父视图将其放置在有用的地方。父视图负责组织、页面的砌体,每个子视图都显示有关模型的内容。
    • 好的,@Elf Sternberg,非常感谢,我会使用“父视图”的方法。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 2012-04-30
    • 2019-10-03
    • 2013-03-24
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多