2016-01-27 11 views
23
配列内の項目がある場合

配列内のアイテムがない場合、私は、このリターンで働いているAPIはNG-場合は、チェックは、配列が空の場合

items: [] 

それは返し

items: [ 
    { 
    name: 'Bla' 
    } 
] 
のようなもの

私のテンプレートでは、そこにデータがあるかどうかに基づいて要素を表示/非表示にするにはng-ifを使用する必要があると思います。これは角度で働く私の最初の時間であり、私がやろうとしています何をすべきか、もっと良い方法があるかもしれないと私は完全にオフにベースとなる可能性が

<p ng-if="post.capabilities.items"><strong>Topics</strong>: <span ng-repeat="topic in post.capabilities.items">{{topic.name}}</p> 

答えて

40

post.capabilities.itemsは、空の配列であるため、まだ定義されています。0が偽であるため、post.capabilities.items.lengthにチェックすると正常に動作するはずです。

22

0よりも大きくなるように配列のlengthプロパティを確認します。JavaScriptで

<p ng-if="post.capabilities.items.length > 0"> 
    <strong>Topics</strong>: 
    <span ng-repeat="topic in post.capabilities.items"> 
    {{topic.name}} 
    </span> 
</p> 

配列(オブジェクト)がtruthy値ですので、あなたの最初の検証<p ng-if="post.capabilities.items">は、配列が空の場合でも、trueに常に評価。

+1

残念ながら、配列が 'null'または' undefined'の場合、これは機能しません。実行時エラーが発生します。 – Dai

関連する問題