2012-08-28 48 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(或视图)变得越来越沉重时,才在几个视图模式中分割。