如何将选项添加到淘汰js选项中的第一个

How to add option to the first in knockout js options?

本文关键字:选项 js 第一个 淘汰 添加      更新时间:2023-09-26

我有这个代码,

<select class="form-control" required data-bind="options: legends, value: statusToChange">

我有一个传说阵列。我想在选项中添加"(空格(。但我不想把它添加到数组中。

我在这个应用程序中使用了敲除js,所以我有self.legends((作为legends数组。

听起来您正在寻找optionsCaption绑定:

optionsCaption

有时,您可能不希望在默认情况下选择任何特定选项。但是,单选下拉列表通常以选定的某个项目开始,那么如何避免预先选择某个项目呢?通常的解决方案是在选项列表前面加一个特殊的伪选项,该选项只写着"选择一个项目"或"请选择一个选项"或类似的内容,并在默认情况下选择该选项。

这很容易做到:只需添加一个名为optionsCaption的附加参数,其值是要显示的字符串。例如:

<select data-bind='options: myOptions, optionsCaption: "Select an item...", value: myChosenValue'></select>

KO将在项目列表前加上一个显示文本"Select an item…"且值未定义的项目。因此,如果myChosenValue保持值undefined(可观察器在默认情况下这样做(,那么将选择伪选项。如果optionsCaption参数是可观测的,则初始项的文本将随着可观测值的变化而更新。

示例:

var vm = {
  legends: ko.observableArray([
    "one",
    "two",
    "three",
    "four"
  ]),
  legend: ko.observable()
};
vm.legend.subscribe(function(newValue) {
  console.log("Legend: " + newValue);
});
ko.applyBindings(vm, document.body);
<select data-bind="options: legends, optionsCaption: 'legends', value: legend"></select>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>