【问题标题】:Knockout: Iterate over object and show value in dropdown淘汰赛:迭代对象并在下拉列表中显示值
【发布时间】:2016-08-26 21:04:30
【问题描述】:

我需要一些关于 js/knockout/databindings 的帮助。

在我的代码中,我收到这样的对象: Received object

我希望在下拉列表中显示值,并且键应存储为值。 我尝试使用一些像这样的淘汰数据绑定:

<select id="routeTable" class="form-control" data-bind="
                            options: availableRouteTables,
                            optionsText: availableRouteTables.key,
                            optionsValue: availableRouteTables.value,
                            value: selectedRouteTable,
                            optionsCaption: '- velg rutetabell -'"></select>

我知道“availableRouteTables.key”和“availableRouteTables.value”是错误的,但这只是为了解释/展示我想要的。

到目前为止,该对象仅在 JS 中看起来像这样:

this.availableRouteTables = availableRouteTables;

在下拉列表中显示如下: Dropdown failure

有人可以帮我找出问题并解决它吗? 非常感谢!

【问题讨论】:

    标签: javascript object knockout.js


    【解决方案1】:

    当您收到数据时,您必须更改其结构以使用选项绑定:

    // Convert to array of objects with value and text properties
    var availableRouteOptions = [];
    for(var key in availableRouteTables) {
        availableRouteOptions.push({
        value: key,
        text: availableRouteTables[key]
      });
    }
    

    你必须改变你的绑定:

    options: availableRouteOptions,
    optionsText: 'text',
    optionsValue: 'value',
    

    【讨论】:

    • 进行了微小的改动。文本:availableRouteTables[key] 而不是 data[key] :) 非常感谢!
    猜你喜欢
    • 2015-08-15
    • 2013-02-14
    • 2014-10-07
    • 1970-01-01
    • 2016-05-27
    • 2014-06-07
    • 2015-11-05
    • 2016-11-15
    • 2015-05-06
    相关资源
    最近更新 更多