0

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

        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 值是空的?

4

1 回答 1

2

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

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>
于 2013-02-21T01:43:02.027 回答