我正在开发knockoutjs,我想在数据绑定中使用boolean,这里是我的代码,但它不能正常工作
<p class="cmt-post" data-bind="if:deleteDate&&owner='1'">
<span data-bind="text:deleteDate">
</span>
</p>
答案 0 :(得分:1)
如果deleteDate
和owner
是可观察的,则需要使用()
对其进行评估。此外,您应该使用===
而不是=
,因为===
用于比较相等性,并且还将确保类型相同。即<{1}}将为false,而1 === '1'
为真。
1 == '1'
答案 1 :(得分:0)
你需要double equals来比较相等(就像在标准JS中那样,否则它是一个赋值):
data-bind="if:deleteDate && owner == '1'">
答案 2 :(得分:0)
您指定所有者使用值==
代替=
<p class="cmt-post" data-bind="if:deleteDate&&owner == '1'">
<span data-bind="text:deleteDate"></span>
答案 3 :(得分:0)
我建议您将任何逻辑分离到viewModel而不是
因此,请考虑视图模型中的方法:
function ViewModel(){
this.delete_date_visible = ko.pureComputed(
this.getDeleteDateVisible,
this
)
};
ViewModel.prototype.getDeleteDateVisible = function(){
return this.deleteDate() && this.owner == '1'
}
在视图中:
<span data-bind="if: delete_date_visible">...</span>
甚至
<!-- ko if: delete_date_visible -->
<span>...</span>
<!-- /ko -->
我觉得它看起来更干净。
使用视图模型的方法的纯计算,因为: