當首次創建新模型時,有沒有一種方法可以在Backbone.js中抑制模型驗證?阻止Backbone.js模型從第一次添加到集合時進行驗證
在我的應用程序中,我有一個任意數量的模型的集合,它們被表示爲列表項。用戶可以點擊每個項目上的按鈕,在當前項目下插入一個新的空項目。顯然,空項目驗證失敗,因爲我不想在稍後保存空項目。
當我創建新項目時,我無法知道什麼是合理的默認值,因此使用有效數據預先填充新模型似乎不是一種選擇。
有什麼建議嗎?
更新:在處理切線相關的問題時,我意識到我使用的是Backbone.js 0.9.0版。當這個版本發佈時,其他人遇到了同樣的問題,他們在GitHub的this issue上投訴。
Jeremy修改了0.9.1中的驗證來解決這個問題。將(暫時)空模型添加到集合中是一種有效的現實世界用例。您可以在視圖中處理新的空模型,但是如果您像管理項目列表一樣管理項目列表,則會強制您收集項目視圖(包括空白視圖)無效的模型。對於其他直截了當的情況來說,這是一個非常笨拙的解決方法。很高興這已得到修復。
不添加無效模型在理論上是有道理的,但我想不出讓用戶添加新行的更好方法。我想我可以在視圖中處理所有這些內容,然後在該集合有效時將其添加到集合中,但這會使此應用程序的其他方面複雜化。你的例子工作的很好,但是當我在我的應用程序中嘗試它時,'options'參數被'{silent:true}'對象覆蓋,Backbone.js似乎自動鞋拔。我現在很困惑。 – 2012-03-09 13:12:51
您不應該添加無效模型 - 視圖應該捕獲模型驗證發送的'error'消息,並讓用戶修復它們的輸入或將其取消。當我從我們的服務器中抽取東西時,獲取無效數據我只是將它放在地板上(並將消息發送到我們的Ajax日誌記錄工具),因爲集合中的無效模型是'壞主意' – tkone 2012-03-10 14:41:13