node.js - Angular.JS + Jade = Angular不处理jade的嵌入iframe

标签 node.js angularjs angularjs-directive embed pug

所以我尝试使用 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/

相关文章:

node.js - 在 NodeJs 中实现关键部分的正确方法

javascript - 使用 Mongoose 增加子文档键

javascript - 无限制地应用 Cloudant 搜索索引查询

angularjs - RxJS 并与 Angular 1 一起使用

javascript - 将模型停止使用

angularjs - 从 Angular promise 中提取返回数据

javascript - 如何从带参数的指令调用 Angular Controller 作用域函数?

node.js - 使用 chai 检查 typescript/nodejs 中的异常不起作用

javascript - Angularjs ng-repeat 并不总是在 $last 上触发

javascript - 在指令定义中的其他指令内添加指令