KnockoutJS不显示选择

KnockoutJS not displaying select

本文关键字:选择 显示 KnockoutJS      更新时间:2023-09-26

我正在尝试获取一个选择菜单来显示外部脚本表中创建的列表中的选项。 该列表:

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>

在浏览器中显示时,下拉菜单不显示标题和下拉选项。 这适用于用户将在其中选择其性别的注册页面。

您在控制台中遇到错误吗?如果您的视图模型没有用户。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 中很糟糕。创建一个命名空间(对象)并将所有内容放在那里。