我的AngularJS2应用程序有问题(我使用的是AngularJS2的RC5版本).似乎一个经过清理的URL正在触发更改检测,然后它会更新下面的div
,尽管我的组件状态没有任何更改.
从用户的Angular 来看,这表现为视频播放时的重新加载.
因此,在我的组件视图中,我有:
<div *ngIf="isVideo(item)">
<iframe [src]="getTrustedYouTubeUrl(item)" scrolling="no" frameborder="0" allowfullscreen></iframe>
</div>
上述函数在组件代码中的实现为:
getTrustedYouTubeUrl(linkedVideo:LinkedVideoModel) {
return this.sanitizer.bypassSecurityTrustResourceUrl(linkedVideo.video.url);
}
在debugger中,我看到div经常被刷新,这是由AngularJS 2框架触发的.
如果我用硬编码的URL替换上面的HTML片段,问题就会消失:
<div *ngIf="isVideo(item)">
<iframe src="<hardcoded youtube url here>" scrolling="no" frameborder="0" allowfullscreen></iframe>
</div>
所以我怀疑是URL清理造成的.
谁能给我指出正确的方向吗?一个嵌入式YouTube视频的工作示例,其URL绑定到组件上的某个属性?