ng-show not working even though condition is met

2019-09-05 05:21发布

I am trying to use ng-show and it is simply when something exists, display it.

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

I tested this in the scope comment="No" but it hides it. When comment="Yes" it displays it, I am confused why this is happening because in JavaScript I try if (comment) and it works...

1条回答
Anthone
2楼-- · 2019-09-05 06:09

ng-show directive internally uses a method toBoolean

Here is how it looks like

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;
}

If you look at the implementation, anything like no, false,n,0 evaluate to false.

查看更多
登录 后发表回答