2013-02-21 106 views
0

我有一个这样的视图模型,observable对象不显示某些属性

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

回答

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>