我正在尝试使用 KnockoutJS 进行锻炼。
我有两个下拉菜单
和一个文本框
。
我需要什么
如果两个下拉菜单都被选中,那么只有我应该显示复选框。否则,文本输入应该不可见。
我尝试了什么:
这是我的 fiddle :https://jsfiddle.net/vikash208/z4x5meua/13/
我用的是这样的:
data-bind="visible: selectedValue && selectedControl"
综上所述,验证条件如下:
IF selectedValue IS TRUE AND selectedControl IS NOT UNDEFINED
请给我一个解决方案,以及我哪里出错了。我是knockoutJS
最佳答案
当您在绑定(bind)中使用多个条件时,您需要解包可观察对象,以便可以评估整个表达式。
为此,只需在 observable 之后添加方括号:
<input type="text" class="form-control" data-bind="visible: selectedValue() && selectedControl()" />
您还可以创建另一个包含您的条件的计算可观察对象(请注意,您仍然在计算可观察对象中解包可观察对象)。这可能是更好的选择,因为它将逻辑保留在您的 View 模型中并且可以重复使用。
Txt.showCondition = ko.computed(function() {
return this.selectedItem() && this.selectedValue()
}, this);
然后只需将输入绑定(bind)到此:
<input type="text" class="form-control" data-bind="visible: showCondition" />
关于javascript - 具有两个条件的 KnockoutJS 数据绑定(bind) ="Visible :"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40355522/