Knockout select 选项与数组绑定

Knockout select options binding with array

我试图将 select 选项与我的数组中的值绑定,但没有成功。我试图改变我使用数组的方式,我将其从 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);

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

应该是这样的:

$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}
]

并保持 HTML 与 optionsValueoptionsText 的绑定。