【发布时间】:2011-07-03 04:37:55
【问题描述】:
backbone.js 依赖于 restful 应用程序来初始化模型,但是渐进增强呢?数据已经在 dom 中(或其中的一些),所以即使 html 元素存在,我的模型是否仍应调用 restful 接口?是否有其他库设计可能更适合这种情况?
【问题讨论】:
标签: javascript html dom models backbone.js
backbone.js 依赖于 restful 应用程序来初始化模型,但是渐进增强呢?数据已经在 dom 中(或其中的一些),所以即使 html 元素存在,我的模型是否仍应调用 restful 接口?是否有其他库设计可能更适合这种情况?
【问题讨论】:
标签: javascript html dom models backbone.js
Backbone 可以很好地处理这个问题。我处理这种情况的方法是有一个工厂模型,它可以接收一个 DOM 节点并解析它以提取数据(id、字段等)。
如果您为 View constructor 提供“el”选项,主干将不会获取或渲染模型,因此您可以保持节点不变。
在数据更改后,控制器将同步到服务器。您必须小心包含应用程序运行所需的任何数据,无论它是否显示。
【讨论】:
您不应该使用 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>
加载您的页面并让您的应用在本地运行。
【讨论】: