我们为什么要使用$ sce.trustAsResourceUrl(iframeUrl)?

时间:2016-01-13 06:18:19

标签: javascript angularjs angularjs-sce

我是AngularJS的新手。我尝试用Angular控制器绑定iframe src。

HTML:

<iframe class="mini-graph" ng-src="{{iframeUrl()}}"></iframe>

控制器js:

$scope.iframeUrl = function(){
    return "http://www.google.co.in";
};

这不起作用。但是,如果我将控制器更改为:

$scope.iframeUrl = function(){
    return $sce.trustAsResourceUrl("http://www.google.co.in");
};

它有效。

我不知道$sce.trustAsResourceUrl的神奇之处是什么。如果有人可以解释它会很棒。

1 个答案:

答案 0 :(得分:0)

出于安全原因,AngularJS禁止将ng-src绑定到不受信任的外部资源,例如外部URL。对$sce.trustAsResourceUrl的调用将为外部URL返回一个特殊的包装对象,以将该URL标记为受信任。