2016-01-27 22 views
23

API tôi đang làm việc với lợi nhuận này nếu không có các mục trong mảngng-nếu kiểm tra nếu mảng trống

items: [] 

Nếu có các mục trong mảng nó sẽ trả về một cái gì đó giống như

items: [ 
    { 
    name: 'Bla' 
    } 
] 

Trong mẫu của tôi, tôi tin rằng tôi cần sử dụng ng-if để hiển thị/ẩn một phần tử dựa trên việc liệu có dữ liệu trong đó hay không.

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

Tuy nhiên tôi có thể hoàn toàn rời khỏi đây vì đây là lần đầu tiên tôi làm việc tại Angular và có cách tốt hơn để làm những gì tôi đang cố gắng làm.

Trả lời

40

post.capabilities.items sẽ vẫn được xác định vì đó là một mảng trống, nếu bạn kiểm tra post.capabilities.items.length, nó sẽ hoạt động tốt vì 0 bị lỗi.

22

Xác minh length tài sản của mảng để được lớn hơn 0:

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

Mảng (đối tượng) trong JavaScript là những giá trị truthy, vì vậy xác minh ban đầu của bạn <p ng-if="post.capabilities.items"> đánh giá luôn để true, ngay cả khi mảng rỗng .

+1

Thật không may điều này không hoạt động nếu mảng là 'null' hoặc' undefined' - tôi gặp lỗi thời gian chạy. – Dai

Các vấn đề liên quan