На мой взгляд, у меня есть следующее:
<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
Используйте службу "$ 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>
Думаю, вам может понадобиться использовать $sce.trustAsResourceUrl
чтобы он работал.
Основываясь на вашем примере, вам нужно изменить,
$scope.previewUrl = $sce.trustAsResourceUrl(test ? '/foo/bar/' : '/foo/bar/baz/');
НТН