2016-01-27 5 views
23

एपीआई मैं इस रिटर्न के साथ काम कर रहा हूँ अगर वहाँ सरणी में कोई आइटम नहीं हैंएनजी-अगर जाँच करता है, तो सरणी रिक्त है

items: [] 

यह रिटर्न सरणी में आइटम नहीं हैं, तो

items: [ 
    { 
    name: 'Bla' 
    } 
] 
की तरह कुछ

मेरे टेम्पलेट में मेरा मानना ​​है कि मुझे एनजी का उपयोग करने की आवश्यकता है-अगर किसी तत्व को दिखाने या छिपाने के लिए या तो वहां डेटा है या नहीं।

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

हालांकि मैं पूरी तरह बंद आधार हो सकता है के रूप में यह मेरी पहली बार कोणीय में काम कर रहा है, और मैं क्या करने की कोशिश कर रहा हूँ करने के लिए एक बेहतर तरीका हो सकता है।

उत्तर

40

post.capabilities.items अभी भी परिभाषित किया जाएगा क्योंकि यह एक खाली सरणी है, यदि आप post.capabilities.items.length जाँच यह ठीक काम करना चाहिए क्योंकि 0 falsy है।

22

0 से अधिक होना सरणी के length संपत्ति सत्यापित करें:

<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

दुर्भाग्य से यह काम नहीं करता है अगर सरणी 'शून्य' या 'अपरिभाषित' है - मुझे रनटाइम त्रुटि मिलती है। – Dai

संबंधित मुद्दे