当我尝试为iframe src属性构建URL时,AngularJS为什么会引发错误?

布莱恩·塞克斯顿

我一直在修补AngularJS指令,但我不明白为什么我尝试使用表达式构建iframe src属性的尝试会触发错误。引发的错误引用了以下URL,但恐怕并没有启发性:

http://errors.angularjs.org/1.3.14/ $ interpolate / noconcat?p0 = https%3A%2F%2Fwww.youtube.com%2Fembed%2F%7B%7BvideoId%7D%7D

这到底是什么意思,我该怎么办?

以下是相关的JavaScript和HTML:

angular.module("myModule", [])

	.directive("myDirective", function() {

		return {

			restrict: "EA",

			scope: {

				videoId: "@videoId",
				width: "@width",
				height: "@height"
			},

			// This seems to work as expected.
			//template: '<iframe width="432" height="243" src="https://www.youtube.com/embed/8aGhZQkoFbQ" frameborder="0" allowfullscreen></iframe>',

			// This seems to work as expected except for adding a little extra whitespace after the values.
			//template: '<iframe width="{{width}}" height="{{height}}" src="https://www.youtube.com/embed/8aGhZQkoFbQ" frameborder="0" allowfullscreen></iframe>',

			// This throws an error that refers to http://errors.angularjs.org/1.3.14/$interpolate/noconcat?p0=https%3A%2F%2Fwww.youtube.com%2Fembed%2F%7B%7BvideoId%7D%7D.
			template: '<iframe width="432" height="243" src="https://www.youtube.com/embed/{{videoId}}" frameborder="0" allowfullscreen></iframe>',

			replace: true
		};
	});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>

<my-directive video-id="8aGhZQkoFbQ" width="432" height="243"></my-directive>

多谢赐教。

我将上面的内容留作参考,但是这里是使用控制器和$ sce.trustAsResourceUrl的编辑版本,如Muhammad Reda的答案中所建议,以防它可以帮助任何人一起查看所有内容:

angular.module("myModule", ["ngSanitize"])

	.directive("myDirective", function() {

		return {

			restrict: "EA",

			scope: {

				videoId: "@videoId",
				width: "@width",
				height: "@height"
			},

			template: '<iframe width="432" height="243" src="{{srcUrl}}" frameborder="0" allowfullscreen></iframe>',

			replace: true,

			controller: function($scope, $sce) {

				$scope.srcUrl = $sce.trustAsResourceUrl("https://www.youtube.com/embed/" + $scope.videoId);
			}
		};
	});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-sanitize.min.js"></script>

<my-directive video-id="8aGhZQkoFbQ" width="432" height="243"></my-directive>

穆罕默德·雷达(Muhammad Reda)

您的网址需要换行 $sce.trustAsResourceUrl(YOUR_URL)

文件资料

controller在指令中添加

angular.module("myModule", ['ngSanitize'])
    .directive("myDirective", function() {
        .....
        controller: function($scope, $sce) {
            $scope.iframeUrl = 'https://www.youtube.com/embed/' + $scope.videoId;
            $scope.iframeUrl = $sce.trustAsResourceUrl($scope.iframeUrl);
        },
        template: '<iframe src="{{ iframeUrl }}" frameborder="0" allowfullscreen></iframe>'
    })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我尝试通过用户输入获取 URL 时,Ruby open-uri 会引发错误的 uri 错误。为什么?

来自分类Dev

当我尝试查找每行具有最大值的列名时,为什么`idxmax`会引发错误?

来自分类Dev

当我使用Appcache清单请求外部资源时,为什么jQuery会引发错误?

来自分类Dev

当我为对象分配数字时,为什么TypeScript不会引发错误?

来自分类Dev

为什么在尝试编译mllib示例时sbt会引发错误

来自分类Dev

为什么即使成功,我的脚本也会引发错误?

来自分类Dev

当我尝试通知某事时为空错误

来自分类Dev

当我尝试为数组传递更深的引用时,拆分似乎引发错误

来自分类Dev

当我尝试使用MS AJAX PageMethods传递对象时,为什么我的参数为null

来自分类Dev

当我尝试打印封面数组时,为什么我的输出为空?

来自分类Dev

当我尝试拟合线性混合效应模型时,为什么statsmodels会引发IndedxError?

来自分类Dev

当我尝试在回收站视图中过滤列表时,为什么 filterResults 为 null?

来自分类Dev

每当我尝试为 python 模块安装 mysql 时,这个错误是什么?

来自分类Dev

当我尝试在属性块中将一个类属性分配给另一个类属性时,为什么MATLAB会引发“未定义的变量”错误?

来自分类Dev

为什么当我键入特定的URL(带有ID参数)时,该页面无法正常工作,并引发错误“未捕获的ReferenceError:未定义系统”?

来自分类Dev

为什么当我键入特定的URL(带有ID参数)时,该页面无法正常工作,并引发错误“未捕获的ReferenceError:未定义系统”?

来自分类Dev

当我尝试将String转换为Integer时引发错误

来自分类Dev

当我尝试导入自定义后端时,Settings.py引发错误

来自分类Dev

当我尝试使用MacPorts Python时PyCharm引发错误

来自分类Dev

我正在尝试为正在使用的应用程序制作GUI,但是当我尝试打印全局变量时出现错误。为什么?

来自分类Dev

为什么使用filter()给出我想要的,但是使用get()会引发错误

来自分类Dev

如果我没有在nil上执行代码,为什么Rails会引发错误

来自分类Dev

为什么我用来存储循环数据的对象会引发错误?

来自分类Dev

我可以看到 /bin/bash 文件夹,但为什么该命令会引发错误

来自分类Dev

为什么当我尝试为我创建的类创建构造函数时会出现错误?

来自分类Dev

猫鼬无法将“”的属性设置为undefined,每当我尝试创建新条目时。

来自分类Dev

当我尝试从端口 3000 获取它们时,为什么我的 cookie 和 signedCookies 在 req 中为空?

来自分类Dev

尝试构建JSX时Webpack引发错误

来自分类Dev

当我尝试将表格设置为干净时,脏表格显示错误

Related 相关文章

  1. 1

    当我尝试通过用户输入获取 URL 时,Ruby open-uri 会引发错误的 uri 错误。为什么?

  2. 2

    当我尝试查找每行具有最大值的列名时,为什么`idxmax`会引发错误?

  3. 3

    当我使用Appcache清单请求外部资源时,为什么jQuery会引发错误?

  4. 4

    当我为对象分配数字时,为什么TypeScript不会引发错误?

  5. 5

    为什么在尝试编译mllib示例时sbt会引发错误

  6. 6

    为什么即使成功,我的脚本也会引发错误?

  7. 7

    当我尝试通知某事时为空错误

  8. 8

    当我尝试为数组传递更深的引用时,拆分似乎引发错误

  9. 9

    当我尝试使用MS AJAX PageMethods传递对象时,为什么我的参数为null

  10. 10

    当我尝试打印封面数组时,为什么我的输出为空?

  11. 11

    当我尝试拟合线性混合效应模型时,为什么statsmodels会引发IndedxError?

  12. 12

    当我尝试在回收站视图中过滤列表时,为什么 filterResults 为 null?

  13. 13

    每当我尝试为 python 模块安装 mysql 时,这个错误是什么?

  14. 14

    当我尝试在属性块中将一个类属性分配给另一个类属性时,为什么MATLAB会引发“未定义的变量”错误?

  15. 15

    为什么当我键入特定的URL(带有ID参数)时,该页面无法正常工作,并引发错误“未捕获的ReferenceError:未定义系统”?

  16. 16

    为什么当我键入特定的URL(带有ID参数)时,该页面无法正常工作,并引发错误“未捕获的ReferenceError:未定义系统”?

  17. 17

    当我尝试将String转换为Integer时引发错误

  18. 18

    当我尝试导入自定义后端时,Settings.py引发错误

  19. 19

    当我尝试使用MacPorts Python时PyCharm引发错误

  20. 20

    我正在尝试为正在使用的应用程序制作GUI,但是当我尝试打印全局变量时出现错误。为什么?

  21. 21

    为什么使用filter()给出我想要的,但是使用get()会引发错误

  22. 22

    如果我没有在nil上执行代码,为什么Rails会引发错误

  23. 23

    为什么我用来存储循环数据的对象会引发错误?

  24. 24

    我可以看到 /bin/bash 文件夹,但为什么该命令会引发错误

  25. 25

    为什么当我尝试为我创建的类创建构造函数时会出现错误?

  26. 26

    猫鼬无法将“”的属性设置为undefined,每当我尝试创建新条目时。

  27. 27

    当我尝试从端口 3000 获取它们时,为什么我的 cookie 和 signedCookies 在 req 中为空?

  28. 28

    尝试构建JSX时Webpack引发错误

  29. 29

    当我尝试将表格设置为干净时,脏表格显示错误

热门标签

归档