Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Correct way Provide DomSanitizer to Component with Angular 2 RC6

I'm attempting to use DomSanitizer to sanitize a dynamic URL within a Component using I can't seem to figure out what the correct way to specify a Provider for this service is.

I'm using Angular 2.0.0-rc.6

Here's my current component:

@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 results in the error this.sanitizer.bypassSecurityTrustResourceUrl is not a function at runtime.

Could someone show me an example of how to properly provide a Provider for DomSanitizer? Thanks!

like image 345
kalmas Avatar asked Sep 11 '16 16:09

kalmas


2 Answers

You don't need to declare providers: [ DomSanitizer ] anymore.
Just need to import DomSanitizer as shown below,

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

in component inject it through a constructor as below,

constructor(private sanitizer: DomSanitizer) {} 
like image 190
Nikhil Shah Avatar answered Oct 04 '22 13:10

Nikhil Shah


Import these-

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

define variable-

trustedDashboardUrl : SafeUrl; 

Use it in constructor like this-

constructor(     private sanitizer: DomSanitizer) {} 

Specifiy URL like this-

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

See if this helps.

like image 45
Sanket Avatar answered Oct 04 '22 13:10

Sanket