【问题标题】:Knockout JS - How to initialize a complex object as observable?Knockout JS - 如何将复杂对象初始化为可观察的?
【发布时间】:2016-06-13 13:34:47
【问题描述】:

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

但我不确定我应该如何初始化 SelectedGroup 并使该对象中的每个人都可以观察到。

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

【问题讨论】:

    标签: javascript knockout.js


    【解决方案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 有一个相当详尽的例子。

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2016-04-25
      • 2012-10-19
      • 2016-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      相关资源
      最近更新 更多