我正在尝试使用范围变量设置iframe的ng-src,并且它会一直显示为空白。
我试过了:
<div ng-repeat="url in urls">
<div ng-click="testAlert(url.domain)">
<iframe ng-src="{{ url.domain }}" ></iframe>
<div style="text-align: center">{[ url.domain ]}</div>
</div>
</div>
文本显示正常,所以我知道值和那里的点击警告选择域。只是ng-src似乎最终空白,因此不会拉起网站。如果我将ng-src硬编码到外部站点就可以了。
答案 0 :(得分:6)
很可能与$ sce没有被配置为在插值时信任外部资源...尝试将其放入您的控制器中(确保注入$sce服务)。 trustAsResourceUrl是您感兴趣的方法,您可以将要使用的URL传递给它:
.controller("MainController", function ($scope, $sce) {
var urls = [];
//Need to trust resource to be able to interpolate, see $sce documentation
urls.push({domain: $sce.trustAsResourceUrl("http://angularjs.org")});
urls.push({domain: $sce.trustAsResourceUrl("http://www.jquery.com")});
$scope.urls = urls;
$scope.testAlert = function (value) {
alert(value);
}
});
见工作fiddle。