17
Я пытаюсь связать атрибут src
элемента HTML <script>
с переменной в моем угловом контроллере, чтобы я мог обновить его с контроллера, не имея дело с каким-либо интерфейсом.Как связать <script> атрибут src элемента в AngularJS
До сих пор я пытался все эти варианты:
<script type="text/javascript" ng-src="{{sourceUrl}}"></script>
<script type="text/javascript" src="{{sourceUrl}}"></script>
<script type="text/javascript" ng-src="sourceUrl"></script>
В моем контроллере у меня есть:
$scope.sourceUrl = "https://<some url goes here>";
При запуске страницы в браузере после $ scope.sourceUrl получает набор там не является исходящим запросом sourceUrl, поэтому я уверен, что делаю что-то неправильно. Есть идеи?
Я нашел несколько сообщений о src
атрибута <img>
элемента и ng-src
должны работать, как они говорят, но я предполагаю, что <script>
как-то по-другому.
'
Хотя теги сценария могут быть интерполированы только после того, как вы можете просто добавить еще теги скриптов.
В контроллере просто нажать несколько объектов, как
{src: 'foo.js'}
в массив скриптов и вуаля, ленивые нагруженные сценарии.Вот Plunker, который демонстрирует это: http://plnkr.co/edit/6QuwuqsGoyrASk8FKmu2?p=preview
источник
2014-12-05 06:53:31 Enzey
Не работает. – erkpwejropi
Добавление мое решение как ответ на @ предложение Джонатана.
И вид фрагмент следующим образом:
источник
2016-01-28 11:00:09
Вы могли бы добавить его динамически к концу тела внутри контроллера:
источник
2016-05-31 20:59:28
Не Угловой способ, хотя –
Я знаю, что ответ приходит поздно но вот изящное и простое решение:
Вы должны использовать контекстное экранирование сценария с $ sce.trustAsResourceUrl (значение).
См Documentation
Было бы, вероятно, выглядеть следующим образом:
В app.js:
В индексе.HTML:
Атрибут тега сценария
src
будет переплетен к его значению в Угловом. Вот результат, когда я бегу мой веб-приложение и запустить отладчик, чтобы проверить обработанную HTML:Обратите внимание, что сценарий не будет выполняться, если привязка выполняется после первой загрузки тега!
источник
2017-01-26 10:26:48
Ваше решение не сработало для меня, пока я не использовал 'ng-src' вместо' src'. После этого настройка доверенного URL-адреса в ApplicationController сделала трюк. – mareckmareck