我试图创建一个条件语句,根据observableArray的属性内的floatval值呈现一个元素我迭代
当我渲染值本身时,它可以工作:
<span data-bind="text: stinger.points"></span>
对于observableArray中的每一个,我都会看到正确的值,例如&#34; 3.2&#34;。
继承我的实际陈述,但没有一个显示在计算的html中:
<!-- ko if: stinger.points >1.49 && stinger.points <2.49 -->
<div>1.5 - 2.48</div>
<!-- /ko -->
<!-- ko if: stinger.points >2.49 && stinger.points <3.49 -->
<div>2.5 - 3.48</div>
<!-- /ko -->
<!-- ko if: stinger.points >3.49 && stinger.points <4.49 -->
<div>3.5 - 4.48</div>
<!-- /ko -->
<!-- ko if: stinger.points >4.49 && stinger.points <5.1 -->
<div>4.5 - 5</div>
<!-- /ko -->
<!-- ko if: stinger.points <0.1 -->
<div >0</div>
<!-- /ko -->
或者我可以像这样接近它:
<div data-bind="visible: rating.points > 1.2 && rating.points < 3.4">between 1.3 - 3.5</div>
然而,这也不起作用,如上所述。
我做错了什么?如何纠正这个?
答案 0 :(得分:2)
在表达式中使用observable时,必须通过添加()来解包它。更新您的代码如下:
<!-- ko if: stinger.points() >1.49 && stinger.points() <2.49 -->
<div>1.5 - 2.48</div>
<!-- /ko -->
<!-- ko if: stinger.points() >2.49 && stinger.points() <3.49 -->
<div>2.5 - 3.48</div>
<!-- /ko -->
<!-- ko if: stinger.points() >3.49 && stinger.points() <4.49 -->
<div>3.5 - 4.48</div>
<!-- /ko -->
<!-- ko if: stinger.points() >4.49 && stinger.points() <5.1 -->
<div>4.5 - 5</div>
<!-- /ko -->
<!-- ko if: stinger.points() <0.1 -->
<div >0</div>
<!-- /ko -->