반응형
Angular2에 의한 링크에 "안전하지 않은"접두사를 추가하지 않는 방법은 무엇입니까?
이 질문에 이미 답변이 있습니다.
Angular2를 사용하면 링크에 접두사 " 안전하지 않은 : "을 추가 하지 않도록 설정이 있습니까 ? Angular2에서 기본적으로 허용되지 않는 프로토콜에 대한 링크를 설정해야하지만 내부 응용 프로그램에 필요하므로 결과는 잘못된 링크입니다.
<a href="unsafe:Notes://MYSERVER/C1256D3B004057E8" ..
이전 Angular에는 compileProvider.aHrefSanitizationWhitelist가 있었지만 Angular2에서 비슷한 것을 찾을 수 없습니다.
사용 DomSanitizer
:
import {DomSanitizer} from '@angular/platform-browser';
...
constructor(private sanitizer:DomSanitizer){}
...
let sanitizedUrl = this.sanitizer.bypassSecurityTrustUrl('Notes://MYSERVER/C1256D3B004057E8');
또는 삭제 된 URL을 반환하는 메서드를 만듭니다.
sanitize(url:string){
return this.sanitizer.bypassSecurityTrustUrl(url);
}
그런 다음 템플릿에서 :
<a [href]="sanitize('Notes://MYSERVER/C1256D3B004057E8')" ..
또 다른 방법으로 안전하지 않은 URL을 안전한 URL로 변경하는 파이프 서비스를 만들 수 있으므로 모든 구성 요소에서 코드를 다시 작성할 필요가 없습니다. 라는 파이프 서비스를 만듭니다 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(url) {
return this.domSanitizer.bypassSecurityTrustResourceUrl(url);
}
}
그런 다음보기에서 사용하십시오.
예 : <a href="'Notes://MYSERVER/C1256D3B004057E8' | safeUrl"></a>
참고 :이 파이프 서비스를 app.module.ts에 삽입하는 것을 잊지 마십시오.
import { SafeUrlPipe } from './shared/safe-url.pipe'; //make sure your safe-url.pipe.ts file path is matching.
그리고 노드 모듈 선언 섹션에서.
@NgModule({ declarations: [SafeUrlPipe],...});
참조 URL : https://stackoverflow.com/questions/37432609/how-to-avoid-adding-prefix-unsafe-to-link-by-angular2
반응형
'development' 카테고리의 다른 글
Android Studio의 xcrun 개발자 경로 변경 (0) | 2021.01.09 |
---|---|
Ansible에서 이중 중괄호 이스케이프 (0) | 2021.01.09 |
Android Studio Canvas : 너무 큰 비트 맵 그리기 (0) | 2021.01.09 |
VSCode 작은 따옴표에서 큰 따옴표로 자동 바꾸기 (0) | 2021.01.09 |
체크 박스처럼 보이도록 html 라디오 버튼의 스타일을 지정할 수 있습니까? (0) | 2021.01.09 |