在backbone.js中从DOM初始化模型是否有意义?

Der*_*lds 12 html javascript dom models backbone.js

backbone.js依赖于restful应用程序来初始化模型,但渐进式增强呢?数据已经在dom(或其中一些)中,所以即使html元素存在,我的模型是否仍然会调用restful接口?是否有其他库设计可能更适合这种情况?

Art*_*ert 6

Backbone可以很好地处理它.我处理这种情况的方法是拥有一个工厂模型,它可以接收DOM节点并解析它以提取数据(id,字段等).

如果为View构造函数提供'el'选项,则backbone不会获取或呈现模型,因此您可以保持节点不变.

数据更改后,控制器将同步到服务器.但是,无论是否显示,您都必须小心应用您的应用程序所需的任何数据.

  • http://documentcloud.github.com/backbone/#FAQ-bootstrap他们执行渲染模板服务器端序列化时,他们的模型,以JSON的一个整洁的小把戏.我可以去任何一种方式. (4认同)
  • @Arthur,我同意这很有意思.我找不到其他人在博客上写关于使用JS MVC框架做这种事情,尽管我对网站开发有意义,但我想知道为什么没有其他人这样做.基本上我不想使用单页面应用程序范例. (2认同)

Jul*_*ien -2

您不应该使用 DOM 元素通过后端数据初始化模型。你有一个非常好的基础设施,有骨干,不会这样做。例如,当您依赖 DOM 时,只要 DOM 结构因设计而发生变化,您就需要更改 JavaScript。

也不依赖主干视图来创建模型。它必须反过来,模型决定页面上的视图。

只需添加一个脚本元素并直接在其中创建 JS 对象即可。您可以初始化集合、单个模型等。

您可以使用模板或 DOM UI 构建块执行相同的操作:

<script type="text/js-template">
  <!-- Your template as realy do elements or using a js templating engine like _.template-->
</script>
Run Code Online (Sandbox Code Playgroud)

加载您的页面并让您的应用程序在本地播放。