【问题标题】:Knockout select options binding with array与数组绑定的淘汰赛选择选项
【发布时间】:2019-01-05 07:08:42
【问题描述】:

我试图将一个选择选项与我的数组中的值绑定,但没有成功。我试图改变我使用数组的方式,将数组从 observable 更改为 observableArray,但它不会采用这些值。

这是我目前的尝试。

<select name="status"
data-bind="options: statuses,
  optionsValue: 'key',
  optionsText: 'value',
  value: status "></select>

淘汰赛:

$statuses = {
 1: 'Open',
 2: 'Closed',
 3: 'On hold'
}

self.statuses = ko.observable($statuses);
self.status = ko.observable(null);

【问题讨论】:

    标签: javascript jquery knockout.js


    【解决方案1】:

    您传递的是字典而不是数组。

    应该是这样的:

    $statuses = [
        'Open',
        'Closed',
        'On hold'
    ]
    
    self.statuses = ko.observableArray($statuses)
    

    使用以下 HTML

    <select name="status" data-bind="options: statuses, value: status"></select>
    

    如果您希望键为值,请将$statuses 更改为:

    $statuses = [
        {key: 'Open', value: 1},
        {key: 'Closed', value: 2},
        {key: 'On hold', value: 3}
    ]
    

    使用optionsValueoptionsText 保持HTML 绑定不变。

    【讨论】:

      猜你喜欢
      • 2013-05-04
      • 2018-08-06
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多