我有以下代码可供选择:
<select data-bind="options: $root.Countries, optionsText: 'Text', optionsValue: 'Value', value: $root.SelectedDialogCountry, optionsCaption: 'All'"></select>
我可以使用“值”获取选择的值,但我也想获取“文本”
示例:文本:美利坚合众国值:美国
我有办法获得“美利坚合众国”吗?
答案 0 :(得分:1)
您可以从绑定中删除optionsValue: 'Value'
属性。这会将整个 Country 对象设置为SelectedDialogCountry
中可观察的值。 (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>