私はこれに似たものを操作するビューを構築しようとしています:
ユーザーが親を選択すると、すべての子が下に表示され、そこで子の情報を編集できます。
私が知りたいのは、ユーザーが親グリッドで新しい親を選択したときに、子グリッドのバインドをその場で変更する適切な方法は何ですか。
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を新しい親に切り替えたいのですが、バインディングが自動的に適用されません。
これは、この種のビューモデルへの正しいアプローチですか?別の方法で行う必要があります。その場合、そのビューモデルはどのようになり、親が変更されたときに子グリッドを適切にバインドするにはどうすればよいですか?