大佬教程收集整理的这篇文章主要介绍了角度 – 在RC.1中,某些样式无法使用绑定语法添加,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<div [style.background-image]="\'url(\' + image + \')\'">Background</div> <div [style.transform]="rotate(7deg)"
不再加了
import { Pipe } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; @Pipe({name: 'safeHtml'}) export class SafeHtml { constructor(private sanitizer:DomSanitizer){} transform(html) { return this.sanitizer.bypassSecurityTrustHtml(html); } }
<div [innerHTML]="someHtml | safeHtml"
更新
DomSanitizationService将在RC.6中重命名为DomSanitizer
原版的
这应该在RC.2中解决
参见Angular2 Developer Guide – Security
Angular2在RC.1中引用了CSS值和属性绑定的消息,如[innerHTML] = …和[src] =“…”
参见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(...); }
并绑定到该值,而不是不可信的纯字符串。
这也可以包裹在管道中
@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); } }
<div [ngStyle]="someStyle | safeStyle"></div>
同
someHtml = `<a href="#" onClick="alert(document.cookie);">click to see the awesome</a>`;
仍然在工作: – [(正在进行中)
参见Angular 2 Security Tracking Issue
和https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html
关于{{…}}的提示
使用prop =“{{sanitizedContent}}”无法绑定消毒内容,因为{{}}在分配清除消毒之前对该值进行stringyfies。
以上是大佬教程为你收集整理的角度 – 在RC.1中,某些样式无法使用绑定语法添加全部内容,希望文章能够帮你解决角度 – 在RC.1中,某些样式无法使用绑定语法添加所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。