반응형
Angular2 innerHtml 바인딩 제거 스타일 속성
내 문제는, 내가 innererHtml 바인딩 -angular2를 사용할 때 모든 스타일 속성을 제거한다는 것입니다.제 작업에서 HTML은 모든 스타일로 서버 측에서 생성되기 때문에 저에게 중요합니다.예:
@Component({
selector: 'my-app',
template: `
<input type="text" [(ngModel)]="html">
<div [innerHtml]="html">
</div>
`,
})
export class App {
name:string;
html: string;
constructor() {
this.name = 'Angular2'
this.html = "<span style=\"color:red;\">1234</span>";
}
}
그러나 DOM에서는 1234만 보이고 이 텍스트는 빨간색이 아닙니다.
http://plnkr.co/edit/UQJOFMKl9OwMRIJ38U8D?p=preview
감사해요!
활용할 수 있습니다.DomSanitized
그것을 피하기 위해.
가장 쉬운 방법은 다음과 같은 사용자 지정 파이프를 만드는 것입니다.
import { DomSanitizer } from '@angular/platform-browser'
import { PipeTransform, Pipe } from "@angular/core";
@Pipe({ name: 'safeHtml'})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitized: DomSanitizer) {}
transform(value) {
return this.sanitized.bypassSecurityTrustHtml(value);
}
}
따라서 다음과 같이 사용할 수 있습니다.
<div [innerHtml]="html | safeHtml"></div>
필요한 가져오기를 완료하여 yurzui의 예를 조금 개선했습니다.
import {DomSanitizer} from '@angular/platform-browser';
import {PipeTransform, Pipe} from '@angular/core';
@Pipe({ name: 'safeHtml'})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitized: DomSanitizer) {}
transform(value) {
return this.sanitized.bypassSecurityTrustHtml(value);
}
}
또한 app.module.ts 파일에 클래스를 추가해야 했습니다.
import ...
import {SafeHtmlPipe} from "./pipes/safehtml.pipe";
@NgModule({
declarations: [
AppComponent,
...,
SafeHtmlPipe <--
],
imports: [...],
providers: [...],
bootstrap: [AppComponent]
})
export class AppModule {
}
참고:sanitizer
컨텐츠를 신뢰할 수 있는 몇 가지 방법이 있습니다.
this.sanitizer.bypassSecurityTrustStyle(value);
this.sanitizer.bypassSecurityTrustHtml(value);
this.sanitizer.bypassSecurityTrustXxx(value); // - see docs [1]
https://stackoverflow.com/a/41089093/142714 를 통해
그렇게,bypassSecurityTrustStyle
HTML 컨텐츠 내의 인라인 스타일을 보여주기 때문에 여기서 원하는 것일 수도 있습니다.value
).
문서: https://angular.io/api/platform-browser/DomSanitizer
언급URL : https://stackoverflow.com/questions/39628007/angular2-innerhtml-binding-remove-style-attribute
반응형
'source' 카테고리의 다른 글
DataTables agax.reload()의 페이지 손실 (0) | 2023.09.04 |
---|---|
예기치 않은 기호 'NONE' 아카이브 엔진 - MariaDB DBForge (0) | 2023.09.04 |
ElasticSearch 7.0 버전을 Spring Boot과 통합하는 방법은 무엇입니까? (0) | 2023.09.04 |
동일한 열에서 다른 결과가 있을 수 있는 SQL 데이터 수집 (0) | 2023.09.04 |
PowerShell - 호출된 응용 프로그램의 프로세스 ID 가져오기 (0) | 2023.09.04 |