Angular-日历标签不允许 HTML 标签中 href 以外的属性

Angular-calendar label doesn't allow attributes in HTML label other than href

所以我正在开发一个使用包 angular-calendar 来显示日历的应用程序,但它似乎遇到了一个奇怪的行为,我看不出我在做什么错。

我基本上是在尝试向一个元素添加多个属性(在下面的代码中由标签表示),但是 none 似乎有效,但 href 除外。

这是我的代码

      eAction = {
        label: `<a id='subscribe' style='margin: 10px;' href='${"/heroes/"}${hero.id}'>See hero</a>`,
        a11yLabel: "...",
        onClick: ...
      }

我尝试过的其他事情:

There's a demo on stackblitz where you can try this yourselfcomponent.ts 中的第 67 或 70 行)。

编辑

我注意到控制台中有一条与该部分相关的警告。

所以可能与 XSS 有关。无论哪种方式,我的问题都保持不变:我该如何解决?

@angular/core 中的 encapsulation: ViewEncapsulation.None 添加到我的组件修复了它。

@Component({
  encapsulation: ViewEncapsulation.None,
  ...
})

因为id和name属性不安全

更多:

为了正确(和安全)的解决方案。

HTML

eAction = {
        label: `<a id='subscribe' style='margin: 10px;' [href]='getActionLink()'>See hero</a>`,
        a11yLabel: "...",
        onClick: ...
      }

打字稿

import { DomSanitizer } from '@angular/platform-browser';

constructor(private _sanitilize: :DomSanitizer){...}

getActionLink(): string{
   return this._sanitilize.bypassSecurityTrustHtml("/heroes/" + this.hero.id);
}