Как загрузить внешний js-скрипт в angular 2 во время выполнения?

Я использую цифры Twitter для аутентификации. Для его загрузки и инициализации требуется небольшой скрипт .js. Они рекомендуют напрямую получать файл со своего сервера.

я должен импортировать

<script id="digits-sdk" src="https://cdn.digits.com/1/sdk.js" async></script>

и инициализируйте SDK, используя как Digits.init({}).

Я использую шаблон стартовый веб-пакет angular2, который использует webpack.

Раньше я использовал systemjs, где я просто сопоставлял имя файла с URL-адресом и импортировал его в свой компонент. Как это

  var map = { 'Digits':'https://cdn.digits.com/1/sdk' };

затем импортируйте его в угловой компонент, например import * as Digits from 'Digits';

Я знаю, что есть внешние веб-пакеты, но они противоречивы.

console.log(Digits) в ngOnInit() иногда показывает правильный объект иногда неопределенная ошибка.


person Arka    schedule 17.05.2016    source источник


Ответы (1)


Мне в этом повезло. Я использую js-файл календаря и хочу получить результат даты из ввода в мой контроллер. В моем случае это Пикадей. Сначала импортируйте файл, как обычно, в любой ваш основной html-файл.

<script src="/assets/js/pikaday.js"></script>

Затем создайте класс, представляющий нужные вам функции.

export class PikadaySource {
    field: any;
    firstDay: number;
    minDate: Date;
    maxDate: Date;
    yearRange: number = 1;
    disableWeekends: boolean;
    format: string = 'MM-DD-YYYY';
    init(){};
}

Цель класса — предотвратить возникновение проблем у транспилятора. Поскольку импортированный скрипт находится в глобальной области видимости, теперь его можно использовать.

person Lockless    schedule 17.05.2016