2011-08-10 73 views
1

傳統的Web框架(如Rails和Django)可以根據與模式對應的「模型」生成HTML表單,這些模型對應於數據庫中的TABLE 。如何爲CouchApp(或任何JSON文檔)生成HTML表單

這對CouchDB有什麼用? (它沒有表格,也沒有模式)

您是否只是手工創建自定義表單,並讓這些表單作爲您的「模型/模式」? 你有在javascript中定義的「模型」嗎?這是否允許自動生成的表單? 您是否有「模型」或類似的定義爲JSON文檔?另外,傳統的HTML表單處理單個「記錄」 - 每個「關鍵」有一個值。 JSON文檔可以在一個鍵或另一個嵌套文檔下具有值列表! - 傳統的HTML表單無法處理! JSON文檔(即使是已知「doctype」的文檔)可能會有「額外」(未定義)字段 - 它們可能缺少字段 - 它們可能具有值與預期類型不同的字段。 所有這些東西都不是由傳統的HTML表單處理。

有沒有比傳統的HTML表單更好的方式讓用戶與JSON文檔進行交互?

回答

1

雖然CouchDB擁有沒有模式的json,但您可以在演示文稿一側定義一個json模式。然後,您可以將此json架構提供給inputEx,它將爲您創建一個表單。

在這裏看到: http://neyric.github.com/inputex/examples/json-schema.html

InputEx非常靈活,並且將處理數組,對象和特別的編輯器特性。只要理解json模式標準沒有很好的定義。如果你只是用它來做CRUD操作,你應該沒問題。

隨着時間的推移,如果您的表單發生變化並且模式發生變化,那麼對couchdb來說真的沒有關係。但是您可能需要爲用戶提供將數據遷移到新模式的方法。

+0

Kanso是太棒了使用CouchDB。它提供了一個引人注目的方法。有一點需要考慮的是,如果你需要能夠在'運行時'和'編譯時'改變你的模式。通過inputex方法,用戶可以定義模式。就像一個調查/問卷建設應用程序一樣。當架構在開發人員控制中並與應用程序集成時,Kanso可以很好地工作。然而,曹蘭可能不得不證實這一點。 –

+0

是的,這是正確的瑞安。如果您期望用戶動態更改模式,那麼Kanso的類型系統將不是最佳解決方案。然而,如果它的開發人員編寫模式,它是非常棒的;) – Caolan

1

的Kanso CouchApp框架提供了最全面的架構和表格生成工具CouchDB的:http://kansojs.org

看看教程,例如使用。模式定義是從組中創建的,可以與CouchDB一起工作,並允許嵌入對象和其他複雜的類似JSON的結構,這是一種令人難以置信的靈活格式(比JSON模式更重要)。

您還可以自動生成您的模式定義表單,或自定義字段,窗口小部件,驗證,權限擴展這些,等