2013-10-13 17 views
0

我目前正在重建一個客戶端的小型移動頁面,以我自己的角色來學習MVC和AngularJS,併爲另一個客戶端準備一個更大的項目。我正在學習的頁面是一個皮塔餐廳的單頁在線訂購應用程序。它允許您從皮塔斯列表中進行選擇,然後第二個視圖允許您用各種蔬菜,奶酪,醬汁等自定義您的皮塔餅,然後是第三個視圖,一個允許您提交訂單的表單。AngularJS應用程序中的多個數據模型?

我的問題是關於模型。我已經構建了一個系統,它從菜單項(pitas和頂部)的數據庫輸出並生成一個JSON文件,Model,以便爲用戶解析和顯示Angular,但我很好奇用戶選擇的位置存儲。

我是否爲用戶的選擇專門創建另一個模型,還是修改原始模型以保留用戶的選擇以及原始數據?

回答

2

這是一個有點複雜的問題,因爲有很多變量。我只想佈置我將如何處理這個決定:

修改傳遞給客戶端的現有模型意味着一些東西。首先,這意味着我不會有另一個模型來處理,但是模型並不關注一件事情(違反SRP)。它在我的域中指定了一個模型,以及它與另一個事物(訂單)之間的關係。這導致物體處於奇怪狀態,因爲它表示不同時間/情況下的不同事物。

其次,我會對所有可能連接到訂單的模型執行此操作。乘以上述問題。

創建一個新的模型來表示一個訂單意味着另一個模型來處理(創建一個API /服務來管理它)。好的一面是,我將能夠把注意力集中在一件事上:追蹤訂單。這意味着我的其他模型不需要改變,我知道對象真正代表什麼。

我明顯傾向於創建一個新的模型,因爲它可擴展/靈活,並且更易於理解/支持。

這與Ng或MVC或JSON沒有多大關係。它更多地與創建模型以最準確,最清晰地表示您的域名有關。

可能還有其他考慮以及具體細節。通過評論讓我知道。

+0

我還會補充一點,你應該將所有與後端服務的交互都放在Ng服務的後面。這是你應該處理模型管理的地方。根據您的需要,有很多方法可以做到這一點($ http和$ resource是最高級別的選擇)。創造這些並保持直線前進是另一回事,但似乎只與你的問題相關。 –

+1

我想我正在學習的是我真的需要閱讀模型以及如何正確設計它們。我一直假設我可以將我的數據庫直接轉儲到JSON對象中,並且我會很好去,但我知道還有很多事情要做。謝謝! –

+1

看看一個SOLID設計讓你開始:http://en.wikipedia.org/wiki/SOLID_(object-oriented_design) –

相關問題