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. Razor View @model是否初始化模型?
- 2. 是否有ML型初始化程序?
- 3. 初始化std :: map中的原始類型的值是否已初始化?
- 4. 「初始化時不兼容的類型」錯誤沒有意義
- 5. 從JSON初始化Rails模型 - 如何初始化子關聯?
- 6. AngularJS從控制值初始化模型
- 7. WebformsMvp - 初始化模型
- 8. Ruby - 初始化模型
- 9. 初始化視圖模型
- 10. 如何初始化模型中的值?
- 11. CSS代碼是否初始化DOM對象的.style屬性?
- 12. 初始化模型時是否可以觸發事件?
- 13. IPython Notebook是否有「初始化單元」?
- 14. 無法初始化Backbone.js的查看
- 15. Backbone.js路由器初始化函數中未定義
- 16. 在CodeIgniter的模型中加載視圖是否有意義?
- 17. 如何在AnguarJS中初始化模型?
- 18. 初始化變量的初始化是否正確?
- 19. knockout.js初始化視圖模型從另一個視圖模型
- 20. 如何從JSON初始化模型類的自定義類型的屬性
- 21. 哪些RailsAdmin從(「未初始化常量」錯誤)初始化模型?
- 22. 初始化後添加backbone.js事件
- 23. Backbone.js初始化多個router.js文件
- 24. 初始化(C)時0.0f的意義是什麼?
- 25. Django的模型對象初始化
- 26. 如何初始化日期元素以初始化Firebase/AngularJS中的模型
- 27. 重新初始化或檢查菜單是否被初始化
- 28. 「值初始化」是什麼意思?
- 29. 恢復的模型未初始化(初始V3 /轉移學習)
- 30. 初始模型是否有兩個softmax輸出?
在我看來,不使用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