मैं इस तरह इसएनजी-बाँध-एचटीएमएल src
<div id="{{item.id}}" ng-repeat="item in itemList">
<div ng-bind-html="item.html"></div>
</div>
की तरह एक साधारण प्रस्तुति item.html एचटीएमएल शामिल है छवि को लोड नहीं करता है:
<a href="http://www.youtube.com"><img src="icons/youtube.png" alt="Youtube"/></a>
हालांकि, जिसके परिणामस्वरूप एचटीएमएल नहीं है छवि को लोड:
<a href="http://www.youtube.com"><img alt="Youtube"/></a>
कुछ खोज के बाद, AngularJS इस क्रॉस-साइट स्क्रिप्टिंग से बचने के लिए करता है की तरह लग रहा है, लेकिन मैं अब था यूट्यूब से सीधे एक छवि लोड करने के लिए ले।
<a href="http://www.youtube.com"><img src="http://img.youtube.com/vi/9bZkp7q19f0/0.jpg" alt="Youtube"/></a>
इसके अलावा अधिक, मैं एनजी-बाँध एचटीएम्एल असुरक्षित का उपयोग करके सभी छवियों को लोड करने में सक्षम था।
<div id="{{item.id}}" ng-repeat="item in itemList">
<div ng-bind-html-unsafe="item.html"></div>
</div>
अगर मैं एनजी-बाँध एचटीएम्एल असुरक्षित उपयोग करते हैं, मैं ngSanitize मॉड्यूल अब, की जरूरत नहीं है, जिसका अर्थ है मेरी कोड कम सुरक्षित है? मैंने ऐसे मामलों का उपयोग किया है जहां मैं बाहरी स्रोतों से छवियों को लोड करता हूं।
अपने सवालों के आ रहा है:
क्या एनजी-बाँध-एचटीएमएल और अलग मैं क्या ऊपर उल्लेख किया है से एनजी-बाँध एचटीएम्एल असुरक्षित के बीच अंतर है। क्या इसके बारे में कोई दस्तावेज है? मुझे कोई नहीं मिला।
मैं होस्ट सर्वर और बाहरी सर्वर से लोडिंग छवियों को कैसे पूरा कर सकता हूं, और असुरक्षित निर्देश का उपयोग नहीं कर रहा हूं?
धन्यवाद!
मैं पूर्ण URL करने के लिए http से प्रसिद्ध हस्तियों/youtube.png यूआरआई लाए गए: //localhost/test/icons/youtube.png और मैं एनजी-बाँध-एचटीएमएल का उपयोग करने में सक्षम था। अब मैं एक और अजीब साइड इफेक्ट देख रहा हूं। Sanitized संस्करण का उपयोग item.html में निहित div से इनलाइन शैली की जानकारी को हटा देता है। – pkrish
$ sanitize दस्तावेज़ों के माध्यम से देखा, और ऐसा लगता है कि यह डिज़ाइन द्वारा है। लेकिन मुझे समझ में नहीं आता क्यों। – pkrish