2012-09-04 71 views
1

我試圖使用嵌套options,(optionsTextoptionsValue)和value一個foreach在KO結合內部結合。KnockoutJS的foreach含選項綁定更新不及時的視圖模型

我期待以下代碼將選擇框綁定到ViewModel的相關Item,但它似乎沒有更新視圖模型中的值 - 它們始終保持爲我用「n/a」初始化它們的值- 我怎樣才能做到這一點?

我已經建立了一個HTML頁面,如下所示:

<table> 
    <tbody data-bind="foreach: Items"> 
     <tr> 
      <td> 
       <select data-bind="options: $parent.Countries, optionsText: 'Name', optionsValue: 'Code', value: 'Country'"></select> 
      </td> 
      <td> 
       <span data-bind="text: Country"></span>      
      </td> 
     </tr> 
    </tbody> 
    <tfoot> 
     <tr> 
      <td colspan="2"> 
       <a href="#" data-bind="click: AddItem">Add item</a> 
      </td> 
     </tr> 
    </tfoot> 
</table> 

用下面的JavaScript:

var countries = ko.observableArray([ 
    { Name : "United Kingdom", Code : "UK", Population : "1 Monarch" }, 
    { Name : "Australia", Code : "AU", Population : "22 million kangaroos" }, 
    { Name : "Antarctica", Code : "AQ", Population : "100,000 penguins (0 polar bears)" } 
]); 

var item = { Country : "n/a" }; 

var ViewModel = function() { 
    this.Countries = countries; 

    this.Items = ko.observableArray(); 
    this.AddItem = function() { 
     this.Items.push(ko.mapping.fromJS(item)); 
    }; 
}; 
var vm = new ViewModel(); 

ko.applyBindings(vm); 

的小提琴是here

回答

2

value刪除引號結合:

<select data-bind="options: $parent.Countries, 
        optionsText: 'Name', 
        optionsValue: 'Code', 
        value: Country"></select> 

這裏是工作小提琴: link

+0

謝謝 - 這是問題所在。繁瑣! – Darbio

相關問題