code

ng-if를 사용하여 변수가 정의되어 있는지 테스트하는 방법

starcafe 2023. 3. 14. 21:46
반응형

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

이것을 시험해 보세요.

item.shipping!==undefined

저는 당신의 plunker를 편집하여 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>

plunker포크

angular.isDefined()사용할 수 있습니다.

설정만 하면 됩니다.

$rootScope.angular = angular;

'실행' 단계에 있습니다.

update plunkr 참조:http://plnkr.co/edit/h4ET5dJt3e12MUAXy1mS?p=preview

언급URL : https://stackoverflow.com/questions/25694310/how-to-use-ng-if-to-test-if-a-variable-is-defined

반응형