在AngularJS中,如何使用ng-bind-html和$ sce正确显示嵌入式iframe?

时间:2014-01-24 11:37:36

标签: angularjs ng-bind-html

我有这个嵌入式代码,我通过AJAX请求:

<iframe src="//player.vimeo.com/video/80836225?badge=0" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>

然后,在控制器中,我尝试将其分配给变量,以便在HTML中呈现。我正在使用$ sce.trushAsHtml,而在HTML中我正在使用ng-bing-html。

我在控制器中做的是这样的。在我从请求中获取响应后,我将iframe字符串分配给名为myIframe的var,然后使其通过$ sce.trushAsHtml。所以:

控制器

var myIframe = ...response from GET (the <iframe> string above)
$scope.preview = $sce.trustAsHtml(myIframe);

HTML

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

我确实要显示视频,但我也在控制台中收到此错误:

Error: a.indexOf is not a function
z@http://mydomain/angular/angular-sanitize.min.js:7
@http://mydomain/angular/angular-sanitize.min.js:12
@http://mydomain/angular/angular-sanitize.min.js:12
h.prototype.$digest@http://mydomain/angular/angular.min.js:100
h.prototype.$apply@http://mydomain/angular/angular.min.js:103
f@http://mydomain/angular/angular.min.js:67
E@http://mydomain/angular/angular.min.js:71
pd/</v.onreadystatechange@http://mydomain/angular/angular.min.js:72

我想摆脱这个错误。我怀疑它与angularjs中的$ digest循环有关,但不知道如何修复它。对于为什么会发生这种情况的任何想法?

感谢。

0 个答案:

没有答案