我正在尋找最好的做法Ember.JS解決以下情形:Ember.JS最佳實踐:型號VS控制器領域結合
- 用戶點擊的挑戰鏈接。
- 系統顯示挑戰列表。
- 用戶點擊編輯挑戰按鈕。
- 系統顯示編輯質詢表單。
- 用戶更新挑戰名稱。
- 用戶點擊聯賽鏈接,而沒有保存挑戰。
- 系統顯示聯賽列表。
- 用戶點擊挑戰鏈接。
- 系統使用更新的質詢名稱顯示質詢列表。
發生此問題的原因是,我的所有文本字段都直接綁定到挑戰模型,並且只要鍵入它就更新模型,並更新所有路線上的文本。我在編輯表單上有一個取消按鈕,在該模型上執行this.get('model')。rollback()以取消編輯。但是,如果您在頁面上的不同位置開始回滾,您可以單擊,這會變得很麻煩。
我正在考慮解決此問題的方法是將表單字段綁定到控制器屬性,並在每個路由上將模型屬性複製到setupController掛鉤上的控制器屬性。這將防止編輯影響其他路線。
我在想,如果這是在燼中的最佳做法還是有更好的方法來解決這個問題?
謝謝
還有其它的方法,但它應該是足夠好做回滾在一個地方,最有可能的'willTransition'鉤。 –
有些人通過創建記錄副本來解決它,只是把它扔掉而不是做回滾。它還值得注意的是,回滾將只回滾屬性而不是關係。 – Keo