javascript - 具有两个条件的 KnockoutJS 数据绑定(bind) ="Visible :"不起作用

标签 javascript jquery knockout.js

我正在尝试使用 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()" />

JSFiddle

您还可以创建另一个包含您的条件的计算可观察对象(请注意,您仍然在计算可观察对象中解包可观察对象)。这可能是更好的选择,因为它将逻辑保留在您的 View 模型中并且可以重复使用。

Txt.showCondition = ko.computed(function() {
    return this.selectedItem() && this.selectedValue()
}, this);

然后只需将输入绑定(bind)到此:

<input type="text" class="form-control" data-bind="visible: showCondition" />

JSFiddle

关于javascript - 具有两个条件的 KnockoutJS 数据绑定(bind) ="Visible :"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40355522/

相关文章:

javascript - 如何在 React.js 的单个组件中根据选定的国家/地区下拉列表两次填充州下拉列表数据?

javascript - 如何创建函数并传递 control-id 来显示/隐藏

javascript - 基于多选选择显示/隐藏下拉菜单

javascript - 在 knockout 中预先选择下拉列表项

javascript - 为什么模板 div 在 afterRender 中显示为 ":hidden"?

javascript - 从 Node js中的文本文件中读取制表符分隔的数据

javascript - Python 请求响应与 Chrome 响应不同

javascript - Anyway 在 Ext js 中实现 tagcloud 吗?

javascript - 使用 Jquery、Json 和循环访问脚本内的 HTML 内容

javascript - Knockout.js 数据绑定(bind)不起作用