2012-08-28 74 views
0

我正在努力如何使用Knockout最好地表示我的數據。有一個包含子視圖模型的主視圖模型或只有一個主視圖模型會更好嗎? 下面是一個實例的方式可以將數據表示:Knockout JS和從屬視圖模型

Company { CompanyID, Industry, Name, Address, Phone } 

Employee { CompanyID, EmployeeID, Name, Address, Phone } 

可以有許多公司和每家公司有很多員工。我需要用戶能夠從下拉列表中選擇公司,填寫公司記錄,然後顯示員工記錄列表。如果公司記錄發生變化,我只想將公司記錄(通過jSON)發送回服務器。如果員工記錄發生變化,我只想將員工記錄發送回服務器。

當然,在加載Company記錄之前,不能加載Employee記錄。

回答

1

儘量不要考慮「更好」...而是想想你的視圖需要什麼。用它需要的模型爲它建立一個視圖模型。如果您需要公司列表,選擇一家公司,然後在一個視圖中顯示所有員工列表,那麼您可以有一個公開這種模型層次結構的視圖模型。

或者您可以創建多個視圖:1從列表中選擇公司,1:顯示公司詳細信息,1:選擇員工......您可以獲得該想法。然後每個視圖都有自己的視圖模型和這些數據。

或者您可以使用子視圖模型創建主視圖模型。

我開始使用1視圖和1 ViewModel,並且只有當我感覺ViewModel(或視圖)變得越來越沉重時,纔在幾個視圖模式中分割。