风格如
<div [style.background-image]="\'url(\' + image + \')\'">Background</div>
<div [style.transform]="rotate(7deg)"
Run Code Online (Sandbox Code Playgroud)
不再添加
Gün*_*uer 110
更新(2.0.0最终版)
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({name: 'safeHtml'})
export class SafeHtml implements PipeTransform {
constructor(private sanitizer:DomSanitizer){}
transform(html) {
return this.sanitizer.bypassSecurityTrustStyle(html);
// return this.sanitizer.bypassSecurityTrustHtml(html);
// return this.sanitizer.bypassSecurityTrustScript(html);
// return this.sanitizer.bypassSecurityTrustUrl(html);
// return this.sanitizer.bypassSecurityTrustResourceUrl(html);
}
}
Run Code Online (Sandbox Code Playgroud)
另请参见https://angular.io/api/platform-browser/DomSanitizer
<div [innerHTML]="someHtml | safeHtml"
Run Code Online (Sandbox Code Playgroud)
更新
DomSanitizationService将DomSanitizer在RC.6中重命名为
原版的
这应该在RC.2中修复
Angular2引入了CSS值的静态处理[innerHTML]=...和[src]="..."RC.1中的属性绑定
另见https://github.com/angular/angular/issues/8491#issuecomment-217467582
可以使用将值标记为受信任 DomSanitizer.bypassSecurityTrustStyle(...)
import {DomSanitizer} from '@angular/platform-browser';
...
constructor(sanitizer: DomSanitizationService) {
this.backgroundImageStyle = sanitizer.bypassSecurityTrustStyle('url(' + this.image + ')');
// for HTML
// this.backgroundImageStyle = sanitizer.bypassSecurityTrustHtml(...);
}
Run Code Online (Sandbox Code Playgroud)
并绑定到此值而不是不受信任的普通字符串.
这也可以用管子包裹
@Pipe({name: 'safeStyle'})
export class Safe {
constructor(private sanitizer:Sanitizer){}
transform(style) {
return this.sanitizer.bypassSecurityTrustStyle(style);
// return this.sanitizer.bypassSecurityTrustHtml(style);
// return this.sanitizer.bypassSecurityTrustScript(value);
// return this.sanitizer.bypassSecurityTrustUrl(value);
// return this.sanitizer.bypassSecurityTrustResourceUrl(value);
}
}
Run Code Online (Sandbox Code Playgroud)
<div [ngStyle]="someStyle | safeStyle"></div>
Run Code Online (Sandbox Code Playgroud)
同
someHtml = `<a href="#" onClick="alert(document.cookie);">click to see the awesome</a>`;
Run Code Online (Sandbox Code Playgroud)
仍在工作: - [(它正在进行中)
Plunker示例(Angular 2.0.0-rc-1)
和https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html
提示 {{...}}
无法绑定已清理的内容,prop="{{sanitizedContent}}"因为{{}}stringyfies分配之前的值会中断清理.
| 归档时间: |
|
| 查看次数: |
47832 次 |
| 最近记录: |