視圖更改時更新模型的正確方法是什麼?是否需要在視圖中或控制器等其他位置執行操作?backbone.js在視圖更改時更新模型的正確方法
例如我有一個模型(模型1)和一些視圖(視圖1)與此模型相關聯。當我更改視圖中的某些字段時,我需要更新模型。哪種方法是正確的?另外,我有一個與另一個視圖(View2)關聯的模型的集合,並且我需要將模型(model1)添加到該集合中。 第二個問題 - View1或Model1應該知道關於收集的信息,如果是 - 應該如何處理?
視圖更改時更新模型的正確方法是什麼?是否需要在視圖中或控制器等其他位置執行操作?backbone.js在視圖更改時更新模型的正確方法
例如我有一個模型(模型1)和一些視圖(視圖1)與此模型相關聯。當我更改視圖中的某些字段時,我需要更新模型。哪種方法是正確的?另外,我有一個與另一個視圖(View2)關聯的模型的集合,並且我需要將模型(model1)添加到該集合中。 第二個問題 - View1或Model1應該知道關於收集的信息,如果是 - 應該如何處理?
有MVC理論,應用到MVC的有趣的方法...在這裏尋找更多的解釋什麼是控制器的骨幹
http://lostechies.com/derickbailey/2011/12/23/backbone-js-is-not-an-mvc-framework/
通過@德里克 - 貝利
總摘要寫,貝利說,有主幹沒有控制器。所以,我個人認爲,每個模型更新應該在與該模型相關的視圖中進行。
Backbone中的每個模型,何時被添加到一個或多個集合中並且被更新時,都會觸發它所屬的集合中的事件,所以您應該在視圖中監聽該事件。
在您的例子
而且,當View1更改model1時,model1將觸發一個事件給View2.collection,您可以偵聽。
但這樣可能會出現一些問題。例如,如果View訂閱了Model.change,並且我更改了視圖和更新後的模型,所以視圖將再次呈現 - 這當然是過度殺傷 – Ph0en1x 2012-04-06 14:55:36
這就是爲什麼在視圖不可見時銷燬View是一種很好的做法,如果這是你的意思。 – drinchev 2012-04-06 15:47:41
@ ph0en1x你永遠不應該離開你沒有使用的視圖。你會降低你的應用程序的性能,並可能導致殭屍事件觸發! – tkone 2012-04-07 00:08:55