проблема в преобразовании небезопасного в безопасный URL в угловых 8 с использованием труб - PullRequest
0 голосов
/ 20 сентября 2019

Я новичок в Angular, я пытаюсь преобразовать свой небезопасный URL в безопасный URL.Я искал [здесь] [ Как избежать добавления префикса «unsafe» для ссылки по Angular2? , чтобы исправить эту проблему с помощью канала, но я не вижу, чтобы он был преобразован в безопасный, может быть, я что-то упускаю.

Мой 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);
  }

}

Part of my template looks as below:
<tr *ngFor="let myData of data"> // data is coming from component.ts file

<td> <a href='my://problem/{{myData.Id}} | safeUrl'>myLink</a></td>

`` `

В пользовательском интерфейсе при проверке он выглядит как unsafe: my://problem/55316480 | safeUrl.Но я ожидаю, что это будет выглядеть как my://problem/55316480

Может кто-нибудь помочь.

Ответы [ 2 ]

1 голос
/ 20 сентября 2019
<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);

демо: https://stackblitz.com/edit/angular-pi4mn8

0 голосов
/ 20 сентября 2019
<td> <a [href]="('my://problem/' + myData.Id) | safeUrl">myLink</a></td>
...