DomSanitizerを使用してコンポーネント内の動的URLをサニタイズしようとしていますが、このサービスのプロバイダーを指定する正しい方法がわからないようです。
私は Angular 2.0.0-rc.6 を使用しています
現在のコンポーネントは次のとおりです。
@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
が発生します。
DomSanitizerのプロバイダーを適切に提供する方法の例を教えてもらえますか?ありがとう!
宣言する必要はありませんproviders: [ DomSanitizer ]
もう]。
次のようにimport
DomSanitizer
import { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser';
コンポーネントでは、以下のようにコンストラクタを介して注入します。
constructor(private sanitizer: DomSanitizer) {}
これらをインポート
import { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser';
変数を定義する
trustedDashboardUrl : SafeUrl;
このようなコンストラクタで使用してください-
constructor(
private sanitizer: DomSanitizer) {}
このような特定のURL
this.trustedDashboardUrl =
this.sanitizer.bypassSecurityTrustResourceUrl
("URL");
これが役立つかどうかを確認してください。
両方とも動作するはずです
constructor(private sanitizer: DomSanitizer) {}
constructor(private sanitizer: Sanitizer) {}
DomSanitizer
を注入すると、このタイプのみがキャストなしで必要なメソッドを提供するため、より適切です。
BrowserModule
をインポートしたことを確認してください
@NgModule({
imports: [BrowserModule],
})
RC.1では、バインディング構文を使用して一部のスタイルを追加できない も参照してください。