Question

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...

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top