这似乎应该很简单,但它证明是麻烦的。我尝试在下拉菜单之外创建文本,具体取决于选择下拉列表中的项目。代码的上下文相关部分如下所示:
<h5 data-bind="visible: Values().Options == 0, text: 'a'"></h5>
<h5 data-bind="visible: Values().Options == 1, text: 'b'"></h5>
<h5 data-bind="visible: Values().Options == 2, text: 'c'"></h5>
什么都没有出现,但奇怪的是,当我这样做时:
<h5 data-bind="text: Values().Options"></h5>
根据选择的选项,0,1或2显示正如我所期望的那样。我在这里缺少什么?
请注意我对html很新。
答案 0 :(得分:0)
我为你创建了一小段代码。您可以运行它(使用下面的按钮)并查看结果。
此外,官方Knockout文档中的这篇文章可能对您有用:http://knockoutjs.com/documentation/options-binding.html。它涵盖了您想要将Knockout绑定应用于<select>
输入的情况。
function Item(arg) {
var self = this;
self.value = arg.value;
self.text = arg.text;
}
var viewModel = {
allItems: ko.observableArray([
new Item({value: 0, text: 'a'}),
new Item({value: 1, text: 'b'}),
new Item({value: 2, text: 'c'})
]),
selectedItem: ko.observable()
};
ko.applyBindings(viewModel);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<select data-bind="options: allItems, value: selectedItem, optionsText: 'value'"></select>
<h5 data-bind="text: selectedItem().text"></h5>
&#13;