2016-07-21 15 views
0

Ich habe folgendes in meiner Sicht:ng-src Aktualisierung auf URL-Parameter ändern sich nicht iframe

<iframe style="width: 100%;height: 240px;" scrolling="no" frameborder="0" ng-src="{{previewUrl}}"> 
</iframe> 

und ich verwende den folgenden Code PreviewURL

$scope.previewUrl = test ? '/foo/bar/' : '/foo/bar/?test=1'; 

Test gesetzt wird geändert an anderer Stelle während die Lebensdauer meiner eckigen App und ich möchte, dass die Quelle des iframes entsprechend aktualisiert wird.

Da der einzige Unterschied in einem URL-Parameter besteht, wird die Änderung von angular ignoriert.

Wenn ich ändern Sie den Code dazu:

$scope.previewUrl = test ? '/foo/bar/' : '/foo/bar/baz/'; 

alles funktioniert.

Ist das ein Fehler in angularjs oder fehlt mir etwas? Ich verwende abgewinkelte Ausführung 1.2.5

Antwort

1

Ich denke, man die $sce.trustAsResourceUrl verwenden müssen kann es funktioniert.

Basierend auf Ihrem Beispiel die Änderung, die Sie tun müssen, ist,

$scope.previewUrl = $sce.trustAsResourceUrl(test ? '/foo/bar/' : '/foo/bar/baz/'); 

HTH

2

Use "$ sce" Service Ihr Problem, wie unten zu lösen.

// in Controller 

app.controller('TestWorkController', function ($scope, $sce) { 
$scope.previewUrl = $sce.trustAsResourceUrl(true ? 'http://clips.vorwaerts-gmbh.de/VfE.webm' : 'http://www.quirksmode.org/html5/videos/big_buck_bunny.webm'); 
}); 

//View 
    <iframe style="width: 100%;height: 240px;" scrolling="no" frameborder="0" ng-src="{{previewUrl}}"></iframe>