Javascript Iframe中的AngularJs ng src

Javascript Iframe中的AngularJs ng src,javascript,angularjs,iframe,Javascript,Angularjs,Iframe,我试图使用一个范围变量设置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 ]}</d

我试图使用一个范围变量设置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>

{[url.domain]}

文本显示得很好,因此我知道这些值以及单击会提醒选择域。只是ng src似乎最终是空白的,因此没有打开站点。如果我将ng src硬编码到一个外部站点,它就会工作。

很可能与插入时$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);
    }
});

请参阅工作。

您是否尝试过ng src=“url.domain”,除了{{}}之外,还必须将内联更新为。。注意括号而不是支架…不知道为什么。但现在可以工作了。你的应用程序中有没有将$interpolateProvider开始和结束符号配置为“{[”和“]}”?“双胡子”{{}-应该像在小提琴示例中一样工作。你完全正确。我必须找出为什么会这样做。谢谢你的帮助!