2013-04-25 12 views
7

मेरे पास एक छवि तत्व है जो मेरे कोणीय ऑब्जेक्ट पर एक विशेषता से अपना पथ प्राप्त कर रहा है। हालांकि अगर यह (imagePath) खाली है तो मुझे एक टूटी हुई छवि मिलती है। यदि विशेषता खाली है तो मैं छवि को प्रस्तुत नहीं करना चाहता हूं हालांकि मुझे ऐसा करने का कोई तरीका नहीं दिख रहा है। कोई विचार?कोणीय विशेषता खाली होने पर तत्व छुपाएं

<img width="50px" src="/resources/img/products/{{current.manufacturerImage.imagePath}}"> 
+0

असली आईआईएफ: http://stackoverflow.com/questions/14164371/inline-conditionals-in-angular-js/14165488#14165488 – bresleveloper

उत्तर

20

आप ngHide निर्देश देखना चाहते हैं।

तो आपका कोड कुछ ऐसा दिखाई देगा।

<img width="50px" ng-hide="current.manufacturerImage.imagePath == ''" 
src="/resources/img/products/{{current.manufacturerImage.imagePath}}"> 

वैकल्पिक रूप से, आप भी darkporter

<img width="50px" ng-show="current.manufacturerImage.imagePath" 
src="/resources/img/products/{{current.manufacturerImage.imagePath}}"> 

इस अद्यतन सकता है अगर वस्तु अशक्त या अपरिभाषित है तो तत्व को छिपाने की जाँच करने के द्वारा सुझाव की कोशिश कर सकते।

+9

बहुत यकीन है कि एनजी-छुपा/शो उचित बूलियन की आवश्यकता नहीं है और सत्यता का उपयोग कर सकते हैं। मैं 'ng-show =" current.manufacturerImage.imagePath "' – jpsimons

+1

@ डर्कोपोर्टर, इस दृष्टिकोण से सावधान रहें, हालांकि आईडी के समान 0 हो सकता है, क्योंकि इसे गलत रूप से गलत तरीके से पार्स किया जा सकता है। – adamdport

0

यह सुझाव मेरे लिए काम नहीं करेगा क्योंकि मैं उपयोगकर्ताओं की भूमिका के आधार पर अपने छवि लिंक उत्पन्न कर रहा था। उपयोगकर्ता की भूमिका थी, लेकिन इसका मतलब यह नहीं था कि उनके पास एक छवि थी।

angular.module('hideEmptyImages', []) 
.directive('hideEmptyImage',function() { 
    return { 
     Restrict: 'AE', 
     Link: function (scope, elem, attrs) { 
      elem.error(function() { 
       elem.hide(); 
      }); 
     } 
    }; 
}); 

तो:

तो मैं एक निर्देश बनाया है .imagePath खाली है या

<img hide-empty-image width="50px" src="/resources/img/products/{{current.manufacturerImage.imagePath}}"> 

नहीं दिखाया जाएगा अगर वहाँ केवल एक सम्बंधित चित्र नहीं है।

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