淘汰选择选项与数组绑定

时间:2018-07-28 09:52:46

标签: javascript jquery knockout.js

我试图将选择选项与数组中的值绑定,但未成功。我试图将数组的工作方式从observableArray更改为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);

1 个答案:

答案 0 :(得分:0)

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

应该是这样的:

$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绑定不变。