我有一个ViewModel并且有一个observable属性,在单击编辑链接后会有一个复杂的对象。这是管理一组组的基本示例。用户可以单击“编辑”链接,我想在SelectedGroup属性中捕获该组。
但我不确定如何初始化SelectedGroup并使此对象中的每个peoperty都可以开始观察。
function ManageGroupsViewModel() {
var self = this;
self.Groups = ko.observableArray();
self.IsLoading = ko.observable(false);
self.SelectedGroup = ko.observable();
}
答案 0 :(得分:1)
通常情况下,您SelectedGroup
为null
:
self.SelectedGroup = ko.observable(null);
...然后当您准备编辑组时,只需将其设置为新实例;如果该实例需要可观察的属性,则可以像创建ManageGroupsViewModel
一样创建它们:
function GroupVM() {
this.name = ko.observable("");
this.members = ko.observableArray();
}
和
// Start editing a group
yourGroupsViewModel.SelectedGroup(new GroupVM());
我的This other answer有一个相当彻底的例子。