Ionic DomSanitizer不适用于bypassSecurityTrustResourceUrl

时间:2018-05-16 08:09:17

标签: angular typescript ionic-framework

它给了我错误GET http://localhost:8100/null 404 (Not Found) 我尝试了多种DomSanitizer方法,但由于某些原因它们都没有用。

我的控制器功能是

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


constructor(public navCtrl: NavController, public navParams: NavParams,  public loadingCtrl: LoadingController,
private sanitizer: DomSanitizer) {}

 ionViewWillEnter() {
  let link = this.navParams.get('link'); // gets the link to be sanitized
  console.log(link); //works
  let url1 = this.sanitizer.bypassSecurityTrustResourceUrl(link);
  console.log(url1); //works
}

我的iframe代码是

<iframe [src]="url1" height="100%" width="100%"
  frameborder="0">
  </iframe> 

我的设置 - 离子3.20.0 npm 5.5.0

3 个答案:

答案 0 :(得分:0)

您是否尝试过更改生命周期?也许您的观点为null获得了undefinedurl1。当我在构造函数中初始化或甚至在ionViewDidLoad()方法

中初始化时,它对我有用

答案 1 :(得分:0)

您的“ url1”未声明为公开。在这种情况下,html模板将无法提取它。

尝试这种方式。

public url1: any;
...
constructor(...)
...
ionViewWillEnter(){
...
    this.url1=this.sanitizer.bypassSecurityTrustResourceUrl(link);
}

答案 2 :(得分:0)

将url变量声明为“ TrustResourceUrl”类型