所以我尝试使用 jade 和 angular.js 嵌入视频。我尝试在jade中使用以下代码,但Angular没有处理它,而当我输入 p {{video.updated_time}}
时没有问题,但以下代码不起作用
iframe(ng-src="{{video.embedLink}}")
我还尝试编写一个 Angular 指令。这是指令的代码
app.directive('embedDirective', function() {
return {
restrict: 'A',
template: '<div style="height:315px;width:560px;"><iframe class="video" style="overflow:hidden;height:100%;width:100%" width="100%" height="100%" src="{{url}}" frameborder="0" allowfullscreen></iframe></div>'
};
});
我在我的jade文件中使用它: div(embed-directive, url="video.embedLink")
。这些解决方案似乎都不适合我。唯一的区别是,当我使用指令时,控制台中不会显示嵌入处理失败的错误,但 iframe 中的 src 为空。没有括号,没有等式标记,只有 src 在 iframe 的中间。另外,在 iframe 中似乎还有 html、head 和 body 标签,这些标签在我的指令中不存在。我很困惑
最佳答案
似乎 Angular 正在试图保护应用程序免受外部链接的影响,因此需要“信任”链接。这是我发现最简单的。只需在 Controller 中添加此功能即可
$scope.trustSrc = function(src) {
return $sce.trustAsResourceUrl(src);
}
然后这就是人们应该如何使用<iframe></iframe>
Jade
iframe(ng-src="{{trustSrc(video.embedLink)}}", src="", widht="560", height="315", frameborder="0", allowfullscreen)
当然,$sce
应该在 Controller 依赖项中。
关于node.js - Angular.JS + Jade = Angular不处理jade的嵌入iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23807764/