我想用KnockoutJS锻炼一件简单的事情.
我有两个下拉菜单和一个文本框.
我需要的
如果同时选择了两个下拉菜单,那么只有我应该显示复选框.否则,文本输入应该不可见.
我尝试了什么:
这是我的小提琴:https://jsfiddle.net/vikash208/z4x5meua/13/
我使用过这样的东西:
data-bind="visible: selectedValue && selectedControl"
从上面可以看出,条件如下:
IF selectedValue IS TRUE AND selectedControl IS NOT UNDEFINED
解决方法
在绑定中使用多个条件时,需要打开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" />