knockoutjs 设置 select 默认 selected 值

knockoutjs set select default selected value

我正在使用 knockout.js 并尝试设置我的 select 绑定的默认值(不使用 optionCaption),并在有人更改它时捕获该值。

<div class="customization-container" data-bind="foreach: customization">
    <div class="clear-both option">
        <label data-bind="text: Name"></label>
        <select data-bind="options: AvailableValues, value: Value></select>
    </div>
</div>

我在 AvailableValues 中有一个数组,如 [1, 2, 3, 4] 或 ["Row"、"Run"、"Paddle"、"Ski"] 和我希望能够选择默认值之一。

我在 knockout.js 文档或网上找不到任何内容。我不想设置标题,我希望默认值是数组中的文字值。

谢谢!

您正在按照应有的方式进行操作(除了缺少双引号以关闭 data-bind 属性)。看这个例子:

var vm = {
  AvailableValues: [1,2,3],
  Value: ko.observable(2)
};

ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<select data-bind="options: AvailableValues, value: Value"></select>

对于字符串列表同样适用:

var vm = {
  AvailableValues: ["Row", "Run", "Paddle", "Ski"],
  Value: ko.observable("Paddle")
};

ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<select data-bind="options: AvailableValues, value: Value"></select>