Включение скриптов в мои представления Angular [дубликаты]

Когда я вставляю любой <script> в свое угловое представление, он молча терпит неудачу и не загружает скрипт.

Я пытаюсь встроить видео Saucelabs в свой проект AngularJS. (Документация, пример скрипта)

<script src="https://saucelabs.com/video-embed/<jobId>.js?auth=<authToken>"></script>

Однако вставка <script>alert('test')</script> в мое представление тоже не работает, поэтому я думаю, что это поведение Angular по умолчанию.

Понятно, что логика на самом деле не относится к представлению, поэтому обычно мне не нужно включать здесь какие-либо <script>, но в данном случае я не вижу альтернативы.

Есть идеи?


person Zach Lysobey    schedule 28.02.2014    source источник
comment
ах, хорошая находка, я искал дубликаты, но не нашел... позвольте мне убедиться, что это действительно та же самая ситуация...   -  person Zach Lysobey    schedule 28.02.2014
comment
... и это это та же самая ситуация, но ответы на этот вопрос кажутся лучше.   -  person Zach Lysobey    schedule 28.02.2014


Ответы (1)


Вот хак, который я использую для загрузки скриптов в контроллер.

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

$http.get('http://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU').then(function(data){
    window.eval(data);
    deffered.resolve() // because I'm using it in the resolve part
});

Укажите свой собственный URL, и это работает.

Другим вариантом может быть использование RequireJS, но я его не использовал.

person Maxim Demkin    schedule 01.03.2014
comment
Хм, я попробую (в понедельник), но я думаю, что это не сработает. скрипт, о котором идет речь, выглядит так, как будто он требует, чтобы тег <script> был присутствует, так как именно так он знает, куда вводить html (но я могу быть смущен) - person Zach Lysobey; 01.03.2014
comment
Тег <script> фактически загружает удаленный скрипт и оценивает (запускает) его. Мой код делает то же самое. Он введет код в глобальную область видимости, потому что я использую eval для объекта окна. - person Maxim Demkin; 02.03.2014