60

i have this situation

<div ng-repeat="test in current">
    <div ng-if="test.view == null">
        <i class="icon ion-checkmark"></i>
    </div>
</div>

but test.view== null doesn't work, neither just checking for test.view or test.view == ''

any ideas?

thanks

edit:

in the loop, sometimes test.view, has a value sometimes is NULL if i do:

<div ng-if="!test.view">1</div>
<div ng-if="test.view">2</div>

i will only see 1

Patrioticcow
  • 26,422
  • 75
  • 217
  • 337

4 Answers4

59

You should check for !test, here is a fiddle showing that.

<span ng-if="!test">null</span>
MOTIVECODEX
  • 2,624
  • 14
  • 43
  • 78
Lucas Polonio
  • 1,003
  • 10
  • 8
28

See the correct way with your example:

<div ng-if="!test.view">1</div>
<div ng-if="!!test.view">2</div>

Regards, Nicholls

jdnichollsc
  • 1,520
  • 1
  • 24
  • 44
2

You can also use ng-template, I think that would be more efficient while run time :)

<div ng-if="!test.view; else somethingElse">1</div>
<ng-template #somethingElse>
    <div>2</div>
</ng-template>

Cheers

Tanzeel
  • 455
  • 6
  • 16
1

Here is a simple example that I tried to explain.

<div>
    <div *ngIf="product">     <!--If "product" exists-->
      <h2>Product Details</h2><hr>
      <h4>Name: {{ product.name }}</h4>
      <h5>Price: {{ product.price | currency }}</h5>
      <p> Description: {{ product.description }}</p>
    </div>

    <div *ngIf="!product">     <!--If "product" not exists-->
       *Product not found
    </div>
</div>
Arsman Ahmad
  • 2,000
  • 1
  • 26
  • 34