【问题标题】:ng-show not working even though condition is met即使满足条件,ng-show 也不起作用
【发布时间】:2013-07-19 12:10:54
【问题描述】:

我正在尝试使用 ng-show,它只是在某些东西存在时显示它。

<span ng-show="comment">{{comment}}</span>

我在范围 comment="No" 中对此进行了测试,但它隐藏了它。当 comment="Yes" 显示它时,我很困惑为什么会这样,因为在 JavaScript 中我尝试 if (comment) 并且它有效......

【问题讨论】:

    标签: javascript angularjs ng-show


    【解决方案1】:

    ng-show 指令内部使用了一个方法toBoolean

    这是它的样子

    function toBoolean(value) {
      if (value && value.length !== 0) {
        var v = lowercase("" + value);
        value = !(v == 'f' || v == '0' || v == 'false' || v == 'no' || v == 'n' || v == '[]');
      } else {
        value = false;
      }
      return value;
    }
    

    如果您查看实现,任何类似 no、false、n、0 的结果都会评估为 false。

    【讨论】:

    • 啊,你在开玩笑吧....好吧,我想是这样的。你对此有什么建议吗?像这样工作 ng-show"comment=="No" 吗?
    • 你为什么希望'n'、'no'和'f'是假的?似乎增加了混乱,我看不出它有用......
    • 是的,我不知道为什么内置。还有什么其他语言甚至将 no 评估为 false?那好吧。我刚刚做了评论!= null。谢谢大家!
    • 我不是在开玩笑,因为我直接从源代码中粘贴了它。 JavaScript 框架的优势:)。说到这里的角度很好是有帮助的。否则 ng-show 应该提供一个布尔表达式。
    猜你喜欢
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 2018-04-13
    相关资源
    最近更新 更多