backbone.js依靠寧靜的應用程序來初始化模型,但漸進式增強又如何?數據已經在dom中(或其中的一部分),所以即使html元素存在,我的模型仍應該調用restful接口嗎?是否有另一種庫設計可能更適合這種情況?從backbone.js中的DOM初始化模型是否有意義?
回答
您不應該使用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>
載入您的網頁,讓你的應用程序在本地播放。
骨幹可以很好地處理。我處理這種情況的方式是有一個工廠模型,它可以接收DOM節點並解析它以提取數據(id,字段等)。
如果您向View constructor提供'el'選項,主幹將不會獲取或渲染模型,因此您可以保持原樣。
數據發生變化後,控制器將同步到服務器。你必須小心,儘管包含你的應用程序需要的任何數據來顯示或不顯示。
http://documentcloud.github.com/backbone/#FAQ-bootstrap 它們在渲染模板服務器端時執行一系列將模型序列化爲json的巧妙小技巧。我真的可以去任何一種方式。 – 2011-02-24 00:50:21
@Arthur,這很有趣。您能否詳細瞭解如何將DOM中的數據提取到模型中? – UpTheCreek 2011-09-12 08:17:01
@Arthur,我同意這很有趣。我無法找到任何人在使用JS MVC框架來做這種事情的博客,儘管對我來說,處理網站開發很有意義,但我想知道爲什麼沒有其他人在做這件事。基本上我不想使用單頁面應用範例。 – JonB 2013-02-01 14:31:21
- 1. 初始模型backbone.js
- 2. Backbone.js的 - 從初始化
- 3. 在MVVM modelView中初始化是否有意義?
- 4. Razor View @model是否初始化模型?
- 5. 有沒有辦法在初始化時驗證backbone.js模型?
- 6. 是否有ML型初始化程序?
- 7. Backbone.js在初始化中讀取模型屬性
- 8. 初始化std :: map中的原始類型的值是否已初始化?
- 9. 「初始化時不兼容的類型」錯誤沒有意義
- 10. 從JSON初始化Rails模型 - 如何初始化子關聯?
- 11. backbone.js:創建集合時定義一組初始模型
- 12. AngularJS從控制值初始化模型
- 13. 從IEnumerable模型初始化IEnumerable ViewModels
- 14. Ruby - 初始化模型
- 15. WebformsMvp - 初始化模型
- 16. 初始化視圖模型
- 17. 初始化視圖模型
- 18. 骨幹模型初始化
- 19. LLVM是否爲初始類型初始化局部變量?
- 20. 依賴注入是否意味着沒有內聯初始化?
- 21. 如何初始化模型中的值?
- 22. CSS代碼是否初始化DOM對象的.style屬性?
- 23. 初始化模型時是否可以觸發事件?
- 24. IPython Notebook是否有「初始化單元」?
- 25. Karma是否有初始化鉤子?
- 26. Angularjs在DOM初始化值
- 27. JMockit是否初始化EJB?
- 28. 訂單初始化的Backbone.js的
- 29. Backbone.js集導致已經在集合中的模型再次「初始化」
- 30. 無法初始化Backbone.js的查看
在我看來,不使用DOM的一個缺點是在初始數據加載時缺乏搜索引擎支持。 – UpTheCreek 2011-09-12 08:07:28
不正確。我所說的不是在你的JS中加載基於你的dom的數據。您將頁面上的數據加載爲JSON(在標題,正文或其他內容中)。你的第一個加載的dom應該都在那裏,你的js代碼只需要連接它並保持它與模型的最新版本。 – Julien 2011-09-12 14:19:27
所以數據在兩個地方呈現在服務器端? (一次在dom中,一次在腳本中爲JSON) – UpTheCreek 2011-09-13 03:53:43