在AngularJS中嵌入Youtube视频在加载页面时会生成错误

Embed Youtube video in AngularJS generates error when loading the page

本文关键字:错误 加载 AngularJS Youtube 视频      更新时间:2023-09-26

下面的代码片段用于在我的页面中嵌入Youtube视频。

<div ng-if="videoUrl != ''" style="height:400px;">
    <iframe width="100%" height="100%" src="{{videoUrl}}"></iframe>
</div>

在我的控制器中,videoUrl首先设置为空字符串,并在从服务器检索数据后更新。

$scope.videoUrl = '';
videoService.getData().then(function(response) {
    $scope.videoUrl = response.videoUrl;
});

Youtube播放器工作并且URL正确,页面完全加载后,我可以使用嵌入式播放器观看视频。困扰我的是每次加载页面时都会返回错误。我可以从浏览器控制台中看到它正在尝试向状态为 http://www.example.com/%7B%7BvideoUrl%7D%7D 发送GET请求 (canceled) .这个请求不是我想要的,它肯定会失败。

我怎样才能摆脱那个奇怪的GET请求?

我根据 RGraham 的建议修改了我的代码,现在错误消失了。

首先,将src更改为ng-src,并将检查条件更改为ng-if="videoUrl"

<div ng-if="videoUrl" style="height:400px;">
    <iframe width="100%" height="100%" ng-src="{{videoUrl}}"></iframe>
</div>

其次,我将videoUrl初始化为undefined

$scope.videoUrl = undefined;

现在页面加载,不再发送以前的奇怪GET请求。