2014-11-18 23 views
10

ile iframe içine URL yüklenemiyor AngularJS kullanarak, "myLink" URL adresini iframe başka bir html'ye yüklemeye çalışıyorum. data.No denetleyici içindeAngularJS

(i url için ihtiyaç Kimliği olsun) ben başka yerden çekin ve gayet iyi çalışıyor id olan - "TransactionsCtrl": HTML

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

: i almak

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

ve tüm şudur: i sert url kodlu

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

iyi çalışıyor. Eğer bir fonksiyonu

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

olarak js kodunda bu yazabilir ve görünümde kullanmak:

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

cevap

21

kullanmanız gereken

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

veya benzeri bir filtre olarak yazabilirsiniz:

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

})

ve görünümde kullanmalıyım? Bunları dinamik geçmek gerekirse bir url veya URL'ler kümesi .. çok iyi değil varsa

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

Bu iyidir onları var olarak geçirilmek yerine denetleyicide ayarlamanız gerekir. Bu doğru olsa da. Aşağıdaki yanıt saghar.fadaei kullanmak için çözümdür. – GravyPlaya

5

Bana uyar: denetleyici olarak