【问题标题】:Knockout if statement checking value of function淘汰 if 语句检查函数的值
【发布时间】:2014-11-07 23:32:40
【问题描述】:

在我的应用程序中,由于状态、可用、关闭、分机等原因,可能会出现几个屏幕。为了使屏幕的不同部分出现,我正在考虑使用剔除 if 语句,因为视图等都共享相同的值等等,创建这么多文件似乎是一种浪费。

但在我的研究中,我只能找到类似这样的淘汰 if 语句

<!-- if: Availabilty() -->
    <p>this appears</p>
<!-- /ko -->

这将检查那里是否有变量并出现,但我似乎无法做到,所以它会检查返回的变量是什么。

我尝试过类似的方法

<!-- if: Availabilty === 'Available' -->

<!-- if: Availabilty() === 'Available' -->

任何帮助都会很棒!

【问题讨论】:

  • 试试
  • @dotnetstep 我试过了,它破坏了我的页面。我实际上已经在我的问题中尝试过这个
  • 我不知道这是否是问题中的拼写错误,但文档中有这样的 if 语句: 他们还说 if 是保留字,并且在某些浏览器中,您需要通过以下方式对其进行转义:
  • @segFault 是的,我 90% 肯定你需要 () 在那里,因为它是一个可观察的。我不相信 if 是 html 中的保留字,但我会尝试一下
  • @daniel 回答是对的,它会起作用。但是在使用这种无容器条件时要小心,即在大多数情况下,结束标签的不匹配是常见的,即浏览器即使肉眼也无法正确读取它,尽管一切看起来都很完美。

标签: javascript knockout.js


【解决方案1】:

您缺少两个字母 ko: &lt;!-- ko if: Availabilty() === 'Available' --&gt;。由于我假设Availabilty 是一个可观察对象,因此需要括号来获取它的值。

【讨论】:

  • ...我已经在上面发布了这个作为我尝试过的东西...它不起作用
  • @zazvorniki 我认为您错过了丹尼尔回答的症结,即您需要将ko 添加到您的 if 语句中。
  • @zazvorniki Daniel 的回答(添加缺少的ko)似乎像你问的那样有效http://jsfiddle.net/dvrxgy8b/
猜你喜欢
  • 1970-01-01
  • 2014-11-30
  • 2017-04-21
  • 2016-08-27
  • 2014-05-11
  • 2014-12-07
  • 2022-01-01
  • 2013-10-18
  • 2013-12-21
相关资源
最近更新 更多