javascript - 如何使用 $sce 插入带有 angular.js 的 iframe?

标签 javascript html angularjs iframe

我正在尝试插入整个 iframe 并将其输出到 html。它必须是 iframe 的原因是因为我有一个函数可以处理多个视频嵌入,例如 youtube、vine 等等——它们都有不同的标签。

所以我想做的是:

输入:

var html = '<iframe src="//www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe>';

$scope.video_element = $sce.trustAsHtml(html);

在 Controller 上:

<div ng-bind-html="video_element"></div>

我希望 iframe 在 div 中作为一个整体输出。很多时候,它只是输出一个 n '[object HTMLIFrameElement]' 而不是实际的 iframe。谁能指导我正确的方向? plunkr 会很棒。

谢谢。

最佳答案

我建议为此使用一个指令,这就是 AngularJS 推荐的将特殊行为附加到 DOM 元素的方法。

我用解决方案创建了一个 Plunkr,检查一下:iframe from a directive .

如果这能解决您的问题,请告诉我。

app.directive('iframeDirective', ['$sce', function($sce) {
return {
    restrict: 'E',
    template: '<iframe src="{{ trustedUrl }}" frameborder="0" allowfullscreen></iframe>',
    link: function(scope) {
      scope.trustedUrl = $sce.trustAsResourceUrl("//www.youtube.com/embed/dQw4w9WgXcQ");
    }
  }
}]);

关于javascript - 如何使用 $sce 插入带有 angular.js 的 iframe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26173788/

相关文章:

javascript - 说某事的机会百分比?

javascript - MetisMenu 在 IE8/9 中无法正常工作

javascript - AngularJS - 持续监视集合

javascript - Angular 1 中的响应式源图像,好还是坏?

javascript - 使用多个路由时,使用express和chokidar进行热重载会导致http header 发送错误

javascript - 如何在 UIWebView 中将数据从 Xcode 传递到 javascript?

html - CSS 无法连接我的 HTML

html5 Canvas 三 Angular 形按百分比填充颜色

javascript - 实现来自 Google 的新 Invisible reCaptcha

javascript - 如何使用javascript trim 单词之间和逗号后的空格