2013-10-27 49 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中很糟糕。创建一个名称空间(对象)并将所有内容放在那里。