2013-02-21 130 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>