ng-src не обновляет iframe при изменении параметра URL

0

На мой взгляд, у меня есть следующее:

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

и я использую следующий код для установки previewUrl

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

Тест изменяется в другом месте в течение жизни моего углового приложения, и я хочу, чтобы источник iframe обновлялся соответствующим образом.

Кажется, что, поскольку единственное различие в URL-параметре, изменение игнорируется угловым.

Если я изменю код на это:

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

все работает.

Это ошибка в angularjs или я что-то упускаю? Я использую угловую версию 1.2.5

Теги:
iframe

2 ответа

2

Используйте службу "$ sce", чтобы решить проблему, как показано ниже.

// 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>
1

Думаю, вам может понадобиться использовать $sce.trustAsResourceUrl чтобы он работал.

Основываясь на вашем примере, вам нужно изменить,

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

НТН

Ещё вопросы

Сообщество Overcoder
Наверх
Меню