我正在尝试建立一个类似于此操作的视图:
用户选择一个父母,然后所有的孩子都显示在下面,然后他们可以在其中编辑孩子的信息。
我想知道的是,当用户在父网格上选择新父时,动态更改子网格绑定的正确方法是什么。
我的 ko js 形式的视图模型现在看起来像这样:
function ViewModel(viewModelFromServer) {
var self = this;
self.parents = ko.observableArray(convertToKOParents(viewModelFromServer.Parents));
self.activeChildren = ko.observableArray([]);
self.changeParent(newParent){
self.activeChildren = newParent.children;
}
}
function Parent(serverParent) {
var self = this;
self.name = ko.observable(serverParent.Name);
self.children = ko.observableArray(convertToKOChildren(serverParent.Children);
self.childCount = ko.computed(function() {
return self.children.length;
});
}
function Child(serverChild) {
var self = this;
self.name = ko.observable(serverChild.Name);
self.Age = ko.observable(serverChild.Age);
self.Height = ko.observable(serverChild.Height);
}
现在,当用户单击父行时,我想将 activeChildren 切换到新的父行,但绑定不会自动应用。
这是处理这种视图模型的正确方法吗?我应该以不同的方式来做吗?如果是这样,该视图模型会是什么样子?当父级更改时,如何让子网格正确绑定?