我正面臨着一個非常關鍵的問題,那就是我無法將數據保存到服務器。堅持並拒絕對不同級別關聯的更改 - Extjs 5/Sencha
我正在構建一個儀表板,用戶可以在其中創建新儀表板並自定義現有儀表板。儀表板佈局將包含一行或多行。每行包含一個或多個寬度不同的單元格。每個單元格將擁有一個或多個小部件實例,並在其中包含對特定小部件的引用。所以你有關於另一個表中的小部件的數據。我正在使用表格存儲。
所以我有如下表格。
頁,頁面佈局,行,單元格,CellWidgetInstance 的Widget,WidgetInstance
所以我對所有上述車型表並添加一個商店得到一個特定的頁面佈局。
頁的hasMany頁面佈局
頁面佈局的hasMany行
行的hasMany細胞
細胞的hasMany CellWidgetInstance
CellWidgetInstance HasOne WidgetInstance
WidgetInstance HasOne的widget
因此,我可以使用從商店返回的pageLayout構建頁面的整個視圖或編輯視圖模式。所以我可以訪問Rows集合並繼續下一層。
現在問題出現在我試圖保存更改時。在編輯視圖中,用戶可以添加/刪除行,添加/刪除/更新單元格,添加/刪除WidgetInstances等。 如果用戶希望在完成所有這些更改後單擊取消,它不應該去服務器,我應該能夠拒絕不同層次的所有變化。如果用戶希望保存,我應該能夠保存一個事務中的所有更改。
我希望通過添加所有必要的CUD(創建/更新/刪除)代理到模型,做pageLayoutStore.sync()和pageLayoutStore.rejectChanges()會把每個模型的create/update/delete url每次更改。但是,儘管sencha支持檢索整個層次結構,但它不支持將結構保存爲層次結構。
因此,我現在正在打擊一個主要的障礙,我可以實現我需要的功能,這是大多數情況下非常標準的功能。保存/拒絕模型和相關模型。
我花了幾個小時搜索網絡和sencha論壇,他們說的是sencha仍然不支持保存相關數據。在一個案例中,有一種方法可以在不使用商店的情況下隨時保存模型。但在我的情況下,我不能這樣做,因爲用戶可能會在編輯後取消。
任何人都可以爲此提出解決方法嗎?
非常感謝, 獨山