Knockout JS - 如何将复杂对象初始化为可观察对象?

时间:2016-06-13 13:34:48

标签: javascript knockout.js

我有一个ViewModel并且有一个observable属性,在单击编辑链接后会有一个复杂的对象。这是管理一组组的基本示例。用户可以单击“编辑”链接,我想在SelectedGroup属性中捕获该组。

但我不确定如何初始化SelectedGroup并使此对象中的每个peoperty都可以开始观察。

function ManageGroupsViewModel() {
    var self = this;
    self.Groups = ko.observableArray();
    self.IsLoading = ko.observable(false);
    self.SelectedGroup = ko.observable();
}

1 个答案:

答案 0 :(得分:1)

通常情况下,您SelectedGroupnull

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有一个相当彻底的例子。