当两个条件之一为真时,我想绑定一个visible属性为true。类似于以下内容 -
$(document.getElementById("ddlTest")).attr("data-bind", "options: $root.Plan, optionsValue:'PlanNameId', optionsText:'PlanName', value: $root.PlanTest, optionsCaption: 'Select', visible: TestId() !== 3 || 4 || 5");
代码正常工作只有一个条件,但我想要visible
答案 0 :(得分:3)
每次比较都必须重复TestId()
:
visible: (TestId() !== 3 || TestId() !== 4 || TestId() !== 5)
通过这样的比较,它在一个函数中会更清晰:
function isTestIdValid(){
// your logic here - perhaps referencing observables directly?
return (TestId() !== 3 || TestId() !== 4 || TestId() !== 5);
}
我不确定您的observable是什么命名的,否则只需将参数传递给要评估的函数。
然后你的标记将如下所示:
visible: isTestIdValid()
<强>更新强>
正如@Hans建议您也可以使用KO Computed来实现这一目标,这有点像:
this.isTestIdValid= ko.computed(function() {
return (this.TestId() !== 3 || this.TestId() !== 4 || this.TestId() !== 5);
}, this);
您需要对其进行调整以适合您的视图模型结构。
答案 1 :(得分:0)
尝试:
visible: TestId() !== 3 || TestId() !== 4 || TestId() !== 5