我有一个组件,其URL(类型为字符串)为@Input
。它将该URL传递给其模板中的DOM元素。这将导致错误:
unsafe value used in a resource URL context
要绕过此错误,我可以在组件中使用DomSanitizer.bypassSecurityTrustResourceUrl
。但是,现在传递给@Input
的任何URL(类型为字符串)都会绕过安全性。我希望我的组件的消费者也会收到错误,因为这些消费者负责传递有效且安全的URL。
我尝试使用SafeResourceURL
作为@Input
的类型,但这会产生与传入字符串相同的行为。
我的组件的一个例子:
@Component({
selector: "my-svg",
template: `
<object
type="image/svg+xml"
[data]="url"
>
</object>
`
})
export class MySvgComponent {
@Input() url: string;
}
我希望上述错误出现在消费者方面,并且当URL来自变量来源时,消费者需要使用bypassSecurityTrustResourceUrl
:
<my-svg [url]="thisIsAnUnsafeUrl"></my-svg>