Невозможно загрузить URL-адрес в iframe с помощью angularJS

Использование AngularJS, Im пытается загрузить URL-адрес "myLink" в iframe в другой html. data.No это id, который я вытаскиваю из другого места и отлично работает (получите идентификатор, который мне нужен для URL-адреса)

в контроллере - "TransactionsCtrl":

$scope.myLink = "http://"the real url"+ data.No +"&file="+ data.No +"&contract_id="+ data.No;
console.log($scope.myLink);

в HTML:

<div ng-controller= "TransactionsCtrl">
    <iframe ng-src="{{myLink}}"></iframe>
</div>

и все, что я получаю, это:

Error: [$interpolate:interr] Can't interpolate: {{myLink}}
Error: [$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy.  URL

когда я жестко закодировал URL-адрес его рабочего штрафа.

Ответ 1

В контроллере вы должны использовать:

   $scope.myLink =  $sce.trustAsResourceUrl(myUrl)

Ответ 2

Это работает для меня: вы можете записать это в js-коде как функцию

$scope.trustSrc = function(src) {
  return $sce.trustAsResourceUrl(src);
}
$scope.iframe = {src:"http://www.youtube.com/embed/Lx7ycjC8qjE"};

и используйте его в своем представлении:

 <iframe ng-src="{{trustSrc(iframe.src)}}"></iframe>

или вы можете записать его как фильтр, например:

.filter('trusted', function($sce){
return function(url) {
    return $sce.trustAsResourceUrl(url);
};

})

и используйте его в поле зрения:

 <iframe ng-src="{{iframe.src | trusted}}"></iframe>