1)達成したいことは明確ではありません。 私が作ることができるのは、domを更新したい場合です。 2)内部htmlを使用しないで、サニタイザで補間やngModelを使用しないでください。 3)もう1つのアプローチは、同じものに対して独自の再使用可能なディレクティブを作成することです。
アプローチは次のようになります。
1)消毒用のパイプを作成します。
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
/**
*
* @export
* @class SafeHtmlPipe
* @implements {PipeTransform}
*/
@Pipe({
name: 'safeHtml'
})
export class SafeHtmlPipe implements PipeTransform {
/**
*
* @param {DomSanitizer} sanitizer
* @memberof SafeHtmlPipe
*/
constructor(private sanitizer: DomSanitizer) { }
/**
*
* @param {any} style
* @returns
* @memberof SafeHtmlPipe
*/
transform(style) {
// return this.sanitizer.bypassSecurityTrustStyle(style);
return this.sanitizer.bypassSecurityTrustHtml(style);
// return this.sanitizer.bypassSecurityTrustXxx(style); - see docs
}
}
2)それが好きで使用してください:
<div class="card_description" [innerHTML]="scenarioStepDataDesc | safeHtml"></div>
をscenarioStepDataDescは、あなたのHTMLコンテンツです。
3)パイプおよびその他の再利用可能なコンポーネント/ディレクティブ
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { MaterialModule } from '../material/material.module';
import { BlockUIModule } from 'ng-block-ui';
import { AutoCompleteComponent } from './components/autoComplete/autoComplete.component';
import { DialogDataComponent } from './components/dialog/dialog.component';
import { SafeHtmlPipe } from './pipes/safeHtml.pipe';
/**
*
* @export
* @class SharedModule
*/
@NgModule({
imports: [CommonModule, FormsModule, MaterialModule, BlockUIModule, ReactiveFormsModule],
exports: [
CommonModule,
FormsModule,
MaterialModule,
BlockUIModule,
ReactiveFormsModule,
AutoCompleteComponent,
DialogDataComponent,
SafeHtmlPipe
],
declarations: [AutoCompleteComponent, DialogDataComponent, SafeHtmlPipe]
})
export class SharedModule { }
が:)
をお楽しみのために共有モジュールを使用してくださいあなたは[代わりに ' Fの中 –
Carsten
Fだけでチップの内容を示すことができました'_body']; 'に変更する ' f.text()' safer –
あなたが何を求めているのか分かりません。あなたは何を達成しようとしていますか?あなたのコードはHTTPリクエストを送信し、レスポンスが返ってくるとコンポーネントのinnerHtmlフィールドをレスポンス本体で初期化します(置き換え後)。他に何を達成したいですか? –