KnockoutJS 获取 Select 的文本和值

KnockoutJS Get the Text and Value of Select

我有这行代码用于 select:

<select data-bind="options: $root.Countries, optionsText: 'Text', optionsValue: 'Value',  value: $root.SelectedDialogCountry, optionsCaption: 'All'"></select>

我可以用 "Value" 得到值 select 但我也想得到 "Text"

example: Text: United States of America Value: USA

有没有办法让我得到"United States of America"?

您可以从绑定中删除 optionsValue: 'Value' 属性。这会将整个 Country 对象设置为 SelectedDialogCountry observable 中的值。 (Documentation)

这是一个工作片段。

function viewModel() {
  const self = this;
  self.Countries = ko.observableArray([
    { Text: "United States of America", Value: "USA" },
    { Text: "China", Value: "CHN" },
    { Text: "India", Value: "IND" }]);
    
  self.SelectedDialogCountry = ko.observable();
  
  self.SelectedDialogCountry.subscribe(_ => {
    console.log(self.SelectedDialogCountry().Text)
    console.log(self.SelectedDialogCountry().Value)
  })
};

ko.applyBindings(new viewModel)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select data-bind="options: Countries,
                       optionsText: 'Text',
                       value: SelectedDialogCountry,
                       optionsCaption: 'Select'"></select>