J'essaie d'utiliser DomSanitizer pour assainir une URL dynamique dans un composant à l'aide de l'ordinateur. Je n'arrive pas à comprendre quelle est la manière correcte de spécifier un fournisseur pour ce service.
J'utilise Angular 2.0.0-rc.6
Voici mon composant actuel:
@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() {}
}
Cela entraîne l'erreur this.sanitizer.bypassSecurityTrustResourceUrl is not a function
lors de l'exécution.
Quelqu'un pourrait-il me montrer un exemple de la manière de fournir correctement un fournisseur pour DomSanitizer? Merci!
Vous n'avez pas besoin de déclarer providers: [ DomSanitizer ]
plus .
Il suffit juste de import
DomSanitizer
comme indiqué ci-dessous,
import { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';
en composant l'injecter par un constructeur comme ci-dessous,
constructor(private sanitizer: DomSanitizer) {}
Importez ces-
import { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';
définir variable-
trustedDashboardUrl : SafeUrl;
Utilisez-le dans un constructeur comme celui-ci-
constructor(
private sanitizer: DomSanitizer) {}
Spécifiez l'URL comme ceci-
this.trustedDashboardUrl =
this.sanitizer.bypassSecurityTrustResourceUrl
("URL");
Voir si cela aide.
Les deux devraient fonctionner
constructor(private sanitizer: DomSanitizer) {}
constructor(private sanitizer: Sanitizer) {}
L'injection de DomSanitizer
est préférable car seul ce type fournit les méthodes nécessaires sans transtypage.
Assurez-vous d'avoir importé le BrowserModule
@NgModule({
imports: [BrowserModule],
})
Voir aussi Dans RC.1, certains styles ne peuvent pas être ajoutés à l'aide de la syntaxe de liaison