angular - 警告 : sanitizing unsafe style value

标签 angular typescript

对于 Angular 的第 7 版,我有这个简单的代码:

@Component({
  selector: 'nf-delete',
  template: `
    <span [title]="title" class="mdi mdi-close-circle font-size-medium">
    </span>
  `,
  styles: [
      `
      :host {
        cursor: pointer;
        line-height: 1;
        vertical-align: middle;
      }

      :host(.inline) {
        display: inline-block;
      }
    `
  ]
})
export class DeleteComponent {
  @Input() title = 'Delete';
  @Input() inline = false;

  @HostBinding('class.inline')
  get isInline() {
    return this.inline;
  }
}

我写了另一个版本:

@Component({
  selector: 'nf-delete',
  template: `
    <span [title]="title" class="mdi mdi-close-circle font-size-medium">
    </span>
  `,
  styles: [
      `
      :host {
        cursor: pointer;
        line-height: 1;
        vertical-align: middle;
      }
    `
  ]
})
export class DeleteComponent {
  @Input() title = 'Delete';

  constructor(private readonly sanitizer: DomSanitizer, private el: ElementRef, private rendrer: Renderer2) {
  }

  @Input() set inline(inline: boolean) {
    inline && this.rendrer.setStyle(this.el.nativeElement, 'display', this.sanitizer.bypassSecurityTrustStyle('inline-block'));
  }
}

两个版本输出警告如下:

core.js:13290 WARNING: sanitizing unsafe style value [object Object] (see http://g.co/ng/security#xss).

有人知道如何解决这个警告吗?

最佳答案

使用HostBinding在更改检测期间在宿主元素上设置属性/样式。

我在这里为您的案例实现了一个小演示:https://stackblitz.com/edit/angular-k9sr9d

inline: boolean;
@HostBinding('style.display') get disp() {
  return this.inline ? 'inline-block' : '';
}

关于angular - 警告 : sanitizing unsafe style value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53934081/

相关文章:

javascript - 类型错误 : Cannot read properties of undefined (reading 'prototype' ) React Typescript + Express

angular - 如何在 Azure 上使用 Net Core API 单独部署 Angular 7

javascript - 将元素从一个数组移动到另一个数组

node.js - Angular:创建 Angular 项目时出现新错误

Angular:收集的元数据包含将在运行时报告的错误:不支持 Lambda

typescript - TypeScript 中任意数量类型的非析取联合

html - 加载程序未在 Angular 4 webapp 中居中对齐

reactjs - react-admin 登录页面中的背景图片

typescript - BreezeJS - 如何编写复杂的查询?

Angular 2 : Cannot find a differ supporting object from service class