使用管道将 Angular 8 中的不安全转换为安全 URL 的问题
Problem in converting unsafe to safe URL in Angular 8 using pipes
我是 Angular 的新手,我正在尝试将不安全的 URL 转换为安全的 URL。我搜索 以使用管道解决此问题,但我没有看到它已转换为安全的,可能是我遗漏的东西。
我的 pipe.ts 文件如下所示:
safe-url.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({
name: 'safeUrl'
})
export class SafeUrlPipe implements PipeTransform {
constructor(private domSanitizer: DomSanitizer) {}
transform(value: any, args?: any): any {
return this.domSanitizer.bypassSecurityTrustHtml(value);
}
}
我的部分模板如下所示:
<tr *ngFor="let myData of data"> // Data is coming the from component.ts file
<td> <a href='my://problem/{{myData.Id}} | safeUrl'>myLink</a></td>
</tr>
在 UI 中,当我检查时,它看起来像 unsafe: my://problem/55316480 | safeUrl
。但我希望它显示为 my://problem/55316480
我该如何解决?
<tr *ngFor="let myData of data"> // data is coming from component.ts file
<td> <a href='my://problem/{{myData.Id}} | safeUrl'>myLink</a></td>
问题是 1) 您将字符串而不是表达式传递给 href。 2)绕过错误的属性
尝试
<td> <a [href]="('my://problem/' + myData.Id) | safeUrl">myLink</a></td>
return this.domSanitizer.bypassSecurityTrustUrl(value);
<td> <a [href]="('my://problem/' + myData.Id) | safeUrl">myLink</a></td>
我是 Angular 的新手,我正在尝试将不安全的 URL 转换为安全的 URL。我搜索
我的 pipe.ts 文件如下所示:
safe-url.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({
name: 'safeUrl'
})
export class SafeUrlPipe implements PipeTransform {
constructor(private domSanitizer: DomSanitizer) {}
transform(value: any, args?: any): any {
return this.domSanitizer.bypassSecurityTrustHtml(value);
}
}
我的部分模板如下所示:
<tr *ngFor="let myData of data"> // Data is coming the from component.ts file
<td> <a href='my://problem/{{myData.Id}} | safeUrl'>myLink</a></td>
</tr>
在 UI 中,当我检查时,它看起来像 unsafe: my://problem/55316480 | safeUrl
。但我希望它显示为 my://problem/55316480
我该如何解决?
<tr *ngFor="let myData of data"> // data is coming from component.ts file
<td> <a href='my://problem/{{myData.Id}} | safeUrl'>myLink</a></td>
问题是 1) 您将字符串而不是表达式传递给 href。 2)绕过错误的属性
尝试
<td> <a [href]="('my://problem/' + myData.Id) | safeUrl">myLink</a></td>
return this.domSanitizer.bypassSecurityTrustUrl(value);
<td> <a [href]="('my://problem/' + myData.Id) | safeUrl">myLink</a></td>