可观察对象不显示某些属性

时间:2013-02-21 01:06:07

标签: knockout.js

我有一个像这样的视图模型,

        function viewModel() {
            this.Items = ko.observable({ A : 1, B: 2 });
            this.Items.X = 4;
            this.Items.Y = 5;
        }

        ko.applyBindings(new viewModel());

我打印出这样的值,

        <span data-bind="text: $root.Items['A']"></span>
        <span data-bind="text: $root.Items['B']"></span>
        <span data-bind="text: $root.Items['X']"></span>
        <span data-bind="text: $root.Items['Y']"></span>

显示X和Y值,但A和B值为空?

1 个答案:

答案 0 :(得分:2)

您将X和Y设置为可观察函数的一部分,而不是被观察的对象。

function viewModel() {
   this.Items = ko.observable({ A : 1, B: 2 });
   this.Items().X = 4;
   this.Items().Y = 5;
}

ko.applyBindings(new viewModel());

this.Items()将提供对象的访问。

<span data-bind="text: $root.Items()['A']"></span>
<span data-bind="text: $root.Items()['B']"></span>
<span data-bind="text: $root.Items()['X']"></span>
<span data-bind="text: $root.Items()['Y']"></span>