2017-03-25 3 views
2

I individuelle Komponenten innerhalb des Content-Option des LoadingController meiner Ionic 2-Projekt verwenden möchten, aber wenn das Laden der Browser kommt Konsole zeigt mir die Meldung:Ionic 2 LoadingController gehören benutzerdefinierte Inhalte

WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss). 

Und die Komponente zeigt nicht, Test macht mir klar, dass die Verwendung von anderen TAG, die nicht Standard-HTML-TAG war, wirft diesen Fehler, wie kann ich Winkel 2 Sicherheit für die Umgehung des Fehlers verwenden? was ich whant ist:

this.loadingController.create({ 
     spinner: 'hide', 
     content: ` 
     <div> 
      <some-component></some-component> 
      <h3>a message...</h3> 
     </div>` 
    }) 
+0

Ist Ihre Komponente in Ihrem ng Modul enthalten? – misha130

+0

Ja, es war enthalten. –

Antwort

0

Eigentlich kann man nicht tun nach the doc:

Inhalt ----> string ----> Der HTML-Inhalt für die Ladeanzeige.

So müssen Sie die Ebene string HTML-Inhalte wie diese passieren:

content: ` 
     <div class="my-spinner"> 
     <div class="my-spinner-box"></div> 
     </div>`, 
+0

Ich weiß aber, wenn ich gehören SVG, die auch der Fehler kommt meine Komponente TAG verwendet, so wie ich eine SVG umfassen können CSS-Klassen animiert? –

+0

Haben Sie das jemals herausgefunden? Ich versuche, ein Ionen-Icon hinzuzufügen, das ebenfalls entfernt wird. – drlff

+0

@diff, leider habe ich keine Zeit dafür, aber wenn ich eine Lösung finde, werde ich es posten. –

0

Dies funktioniert für mich:

//----------imports---------- 
import { DomSanitizer } from '@angular/platform-browser'; 

//----------variables---------- 
safeHtml: any; 

//----------constructor---------- 
constructor(public loadingCtrl: LoadingController, private sanitizer: DomSanitizer) 

//----------your function---------- 
let svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox...whatever..</svg>'; 
// you can also add text BEFORE sanitizing 
let html = svg + '<div class="loadingText">' + this.translate.instant('common.Loading') + '</div>'; 

this.safeHtml = this.sanitizer.bypassSecurityTrustHtml(html); 

var loading = this.loadingCtrl.create({ 
    spinner: 'hide', 
    content: this.safeHtml 
}); 
loading.present(); 
Verwandte Themen