我正在尝试使用KnockoutJS进行锻炼。
我有两个dropdowns
和一个textbox
。
我需要什么
如果同时选择了两个下拉菜单,那么只有我应该显示复选框。否则,文本输入不应该可见。
我尝试了什么:
这是我的小提琴:https://jsfiddle.net/vikash208/z4x5meua/13/
我使用过这样的东西:
data-bind="visible: selectedValue && selectedControl"
从上面可以看出,条件如下:
IF selectedValue IS TRUE AND selectedControl IS NOT UNDEFINED
请向我提供一个解决方案以及我在哪里出错。我是knockoutJS
答案 0 :(得分:14)
在绑定中使用多个条件时,需要打开observable以便可以计算整个表达式。
要做到这一点,只需在observable之后添加括号:
<input type="text" class="form-control" data-bind="visible: selectedValue() && selectedControl()" />
您还可以使用其中的条件创建另一个计算的observable(注意,您仍然在计算的observable中打开observable)。这可能是更好的选择,因为它将逻辑保留在视图模型中并且可以重复使用。
Txt.showCondition = ko.computed(function() {
return this.selectedItem() && this.selectedValue()
}, this);
然后只需将输入绑定到此:
<input type="text" class="form-control" data-bind="visible: showCondition" />