【问题标题】:Conditional operators in comments floatval注释中的条件运算符 floatval
【发布时间】:2013-08-30 11:49:08
【问题描述】:

我正在尝试创建一个条件语句,该语句根据我正在迭代的 observableArray 的属性中的 floatval-value 呈现元素

当我渲染值本身时,它会起作用:

<span data-bind="text: stinger.points"></span>

对于 observableArray 中的每个,我都看到了正确的值,例如“3.2”。

这是我的实际陈述,但它们都没有显示在计算出的 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>

但是,这也不起作用,就像上面一样。

我做错了什么?如何纠正这个问题?

【问题讨论】:

  • stinger.points 是 ko.observable 吗?
  • 不,它是 ko.observableArray([]) 的属性的属性

标签: javascript if-statement knockout.js operators


【解决方案1】:

当你在表达式中使用 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 -->

【讨论】:

  • 太棒了,我对淘汰赛很陌生,对这个 function7object 有点困惑非常感谢
  • 但是你真的应该把这些规则移到视图模型上的计算上
猜你喜欢
  • 1970-01-01
  • 2013-08-01
  • 2014-08-15
  • 1970-01-01
  • 2020-08-22
  • 2023-04-11
  • 2017-12-03
  • 2013-03-22
  • 1970-01-01
相关资源
最近更新 更多