20

के साथ घटक के लिए DomSanitizer प्रदान करें मैं एक घटक के भीतर एक गतिशील यूआरएल को स्वच्छ करने के लिए DomSanitizer का उपयोग करने का प्रयास कर रहा हूं, मुझे यह पता लगाना नहीं है कि इस सेवा के लिए प्रदाता निर्दिष्ट करने का सही तरीका क्या है।सही तरीका Angular 2 RC6

@Component({ 
    templateUrl: './app.component.html', 
    styleUrls: [ './app.component.css' ], 
    providers: [ DomSanitizer ], 
}) 
export class AppComponent implements OnInit 
{ 
    public url: SafeResourceUrl; 

    constructor(private sanitizer: DomSanitizer) {} 

    ngOnInit() { 
     let id = 'an-id-goes-here'; 
     let url = `https://www.youtube.com/embed/${id}`; 

     this.videoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url); 
    } 

    ngOnDestroy() {} 
} 

इस क्रम में त्रुटि this.sanitizer.bypassSecurityTrustResourceUrl is not a function में परिणाम:

मैं Angular 2.0.0-rc.6

उपयोग कर रहा हूँ यहाँ मेरे वर्तमान घटक है।

क्या कोई मुझे DomSanitizer के लिए प्रदाता को उचित तरीके से प्रदान करने का उदाहरण दिखा सकता है? धन्यवाद!

उत्तर

35

आप providers: [ DomSanitizer ] अब घोषित करने के लिए जरूरत नहीं है।
बस जरूरत importDomSanitizer जिन्हें आप नीचे देख,

import { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser'; 

घटक के रूप में नीचे एक निर्माता के माध्यम से इसकी सुई में,

constructor(private sanitizer: DomSanitizer) {} 
+0

यह मेरी समस्या थी। मैं प्रदाता के रूप में 'DomSanitizer' का उपयोग करने का प्रयास कर रहा था। किसी भी प्रदाता के साथ यह एक आकर्षण की तरह काम करता है। धन्यवाद! – kalmas

+0

आपका स्वागत है! – micronyks

1

दोनों काम करना चाहिए

constructor(private sanitizer: DomSanitizer) {} 
constructor(private sanitizer: Sanitizer) {} 

इंजेक्शन DomSanitizer बेहतर है क्योंकि केवल इस प्रकार के कास्टिंग के बिना आवश्यक तरीकों प्रदान करता है।

सुनिश्चित करें कि आप BrowserModule

@NgModule({ 
    imports: [BrowserModule], 
}) 

देखें आयात किया है भी In RC.1 some styles can't be added using binding syntax

+0

यह 'होना चाहिए निजी प्रक्षालक: DomSanitizer' केवल – micronyks

+0

असल में दोनों एक ही काम करना चाहिए https://github.com/angular/angular/blob/979657989bab4fb93faf6a207d30760faa9bd696/modules/%40angular/platform-browser/src/browser.ts # एल 41 –

6

आयात these-

को

variable- परिभाषित

trustedDashboardUrl : SafeUrl; 

इस-

constructor(
    private sanitizer: DomSanitizer) {} 

specifiy यूआरएल की तरह निर्माता में इसका इस्तेमाल इस-

this.trustedDashboardUrl = 
         this.sanitizer.bypassSecurityTrustResourceUrl 
          ("URL"); 

की तरह अगर यह मदद करता है देखें।

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