Подтвердить что ты не робот

Как использовать ng-if, чтобы проверить, определена ли переменная

Есть ли способ использовать ng-if, чтобы проверить, определена ли переменная, а не только, если она правка?

В приведенном ниже примере (живая демонстрация) HTML отображает стоимость доставки только для красного элемента, потому что item.shipping определяется как и не равно нулю. Я также хотел бы отобразить стоимость для синего элемента (отправка определена, но ноль), но не для зеленого элемента (доставка не определена).

JavaScript:

app.controller('MainCtrl', function($scope) {
  $scope.items = [
      {
        color: 'red',
        shipping: 2,
      },
      {
        color: 'blue',
        shipping: 0,
      },
      {
        color: 'green',
      }
    ];
});

HTML:

<body ng-controller="MainCtrl">
  <ul ng-repeat='item in items'>
    <li ng-if='item.color'>The color is {{item.color}}</li>
    <li ng-if='item.shipping'>The shipping cost is {{item.shipping}}</li>
  </ul>
</body>

Я пробовал делать ng-if='angular.isDefined(item.shipping)', но это не сработало. Не было ng-if='typeof(item.shipping) !== undefined'.

4b9b3361

Ответ 1

Попробуйте следующее:

item.shipping!==undefined

Ответ 2

Я отредактировал ваш плункер, чтобы включить решение ABOS.

<body ng-controller="MainCtrl">
    <ul ng-repeat='item in items'>
      <li ng-if='item.color'>The color is {{item.color}}</li>
      <li ng-if='item.shipping !== undefined'>The shipping cost is {{item.shipping}}</li>
    </ul>
  </body>

plunkerFork