2013-07-05 20 views
12

बदलते समय AngularJS img src अद्यतन नहीं करता है I छवियों को लोड करने के लिए ng-src का उपयोग करता हूं। मूल्य कुछ गुंजाइश चर से भरी हुई है, इस तरह:मॉडल बदलते समय मॉडल

<img ng-src="{{currentReceipt.image}}"/> 

मेरे मुद्दा यह है कि जब मैं delete $scope.currentReceipt चलाने के लिए, यह ng-src खाली विशेषता बनाता है लेकिन src विशेषता में यह प्रतिबिंबित नहीं करता है। इसलिए नतीजतन मैं उस छवि को देख रहा हूं जहां मुझे खाली प्लेसहोल्डर चाहिए।

मैं इससे कैसे निपट सकता हूं?

+0

के plunkr –

+0

संभावित डुप्लिकेट में यह डाल सकता है [खाली एनजी-src अपडेट नहीं करता छवि] (http://stackoverflow.com/questions/22092687/empty-ng-src-doesnt-update-image) –

उत्तर

22

यह ngSrc और ngHref निर्देशों से अपेक्षित व्यवहार है। ये निर्देश केवल नए पथों को पहचानने का समर्थन करते हैं, लेकिन जब पथ उपलब्ध नहीं होता है, तो निर्देश exit silently (मुझे यहां एक पुल अनुरोध दिखाई देगा।)।

<img ng-href="{{currentReceipt.image}}" ng-show="currentReceipt.image" /> 
+1

+1 'एनजी-शो' का उपयोग करने के लिए, आप भी डोम से छवि को हटाने पर विचार करना चाह सकते हैं यदि आप इसे पूरी तरह से हटा देना चाहते हैं तो 'एनजी-स्विच' के साथ। – Terry

+0

धन्यवाद, ऐसा लगता है कि मुझे आपके द्वारा सुझाए गए तरीके से काम करना है। मैंने एंगुलर कोड के अंदर एनजी-सीआरटी निर्देश का प्रबंधन किया है और यह भी देखा है कि यह भी निकलता है, अगर कोई मूल्य नहीं दिया गया है, तो मौजूदा स्रोत मूल्य या उस तरह से कुछ भी नहीं हटा रहा है। मैंने इस तरह के मामलों को प्रबंधित करने के लिए एनजी-क्लास का उपयोग करने का फैसला किया है। धन्यवाद! –

+0

मुझे लगता है कि लेखकों ने जानबूझकर बाहर निकलने का निर्देश दिया है यदि मूल्य अपरिभाषित है, क्योंकि src विशेषता को हटाने/साफ़ करने से ब्राउजर टूटी हुई छवि थंबनेल प्रदर्शित करता है, जो वास्तव में वांछित नहीं है। – Stewie

10

कॉल $ गुंजाइश() हटाने $ गुंजाइश के बाद $ लागू होते हैं:

तो एक संभावित समाधान, ngHref के साथ ngShow उपयोग करने के लिए टैग पूरी तरह को छिपाने के लिए जब छवि चर अब उपलब्ध नहीं है हो सकता है।। currentReceipt।

1

निम्नलिखित समाधान मेरे लिए काम करता है:

<img ng-src="{{currentReceipt.image}}" ng-show="currentReceipt.image != null" /> 
0

आप वास्तव में लंबाई के लिए जाँच करें और कर

<img ng-show="user.thumbnail.length > 1" class="img-circle thumb pull-left" ng-src="{{user.thumbnail}}" alt="{{user.firstname}} {{user.lastname}}">