2013-10-27 72 views
0

我想要一個選擇菜單來顯示在外部腳本表中創建的列表中的選項。清單:KnockoutJS不顯示選擇

window.list = [ 
     { 
      Name: 'Male', 
      Value: 1, 
      notApplicable: 'me' 
     }, 
     { 
      Name: 'Female', 
      Value: 2, 
      notApplicable: 'me' 
     }, 
     { 
      Name: 'Not Specified', 
      Value: 3, 
      notApplicable: 'me' 
     } 
     ]; 

的HTML:

<li> 
    <label for="5">Sex</label> 
    <select name="" id="5" data-bind="options: list, optionsText: 'Name', optionsValue: 'Value', optionsCaption: 'Choose', value: user.SELECT"></select> 
</li> 

當在瀏覽器中顯示,在下拉菜單中顯示沒有標題,沒有下拉選項。這是一個註冊頁面,用戶可以選擇他們的性別。

+0

這應該是在一個視圖模型對象,而不是窗口。 @ pax162答案中的例子也顯示了這一點。 –

回答

2

您是否在控制檯中發生錯誤?如果您的視圖模型沒有user.SELECT屬性,則綁定將失敗。我添加了一個user.SELECT財產,它似乎工作:http://jsfiddle.net/BEEuQ/1/

HTML:

<select name="" id="5" data-bind="options: list, optionsText: 'Name', 
    optionsValue: 'Value', optionsCaption: 'Choose', 
    value: user.SELECT"></select> 

JS:

var vm = { 
    list : [ { Name: 'Male', Value: 1, notApplicable: 'me' }, { Name: 'Female', Value: 2, notApplicable: 'me' }, { Name: 'Not Specified', Value: 3, notApplicable: 'me' } ], 
    user:{ 
     SELECT:ko.observable() 
    } 
} 

ko.applyBindings(vm) 

此外,你可能想不想直接把你的數據窗口對象。全局語言在JavaScript中很糟糕。創建一個名稱空間(對象)並將所有內容放在那裏。