在我的 viewModel 中,我定义了相对于选择状态的属性、绑定到选择值的属性和一个计算的 observable,它“读取”选择中所选选项的描述:
AppViewModel: function () {
var self = this;
self.SelectVisible = ko.computed(function () {
return true; // return true or false depending on your context
}, self);
self.Category = ko.observable("");
self.CategoryText = ko.computed(function () {
return $("#Category option[value='" + self.Category() + "']").text();
}, self);
// other code ...
}
在页面中,我有一个始终启用的选择和一个只读输入,其可见性是相互排斥的,并且取决于 viewModel 属性:
<select name="Category" id="Category" data-bind="value: Category, visible: SelectVisible">
<option value="S">Standard</option>
<option value="N">CatN</option>
<option value="C">CatC</option>
</select>
<input style="display: none;" type="text" readonly="readonly" data-bind="value: CategoryText, visible: !SelectVisible()"/>