2016-03-10 3 views
5

У меня есть компонент, который использует библиотеку javascript. На данный момент я только с помощью system.js загрузить зависимостьЗагрузка компонента Angular2 внешнего файла js lib

public ngOnInit() { 
    System.import('lib').then(() => this.createControl()); 
} 

Однако эта задержка в инициализации компонента вызывает проблему с другой, потребляя компонент. По сути, функция createControl работает слишком поздно.

Возможно ли отсрочить инициализацию всего компонента угловым до тех пор, пока не будут загружены все зависимости?

+0

Почему бы не загрузить зависимость в тегах скрипта до загрузки углов? Я делаю это с помощью нескольких библиотек, таких как js.cookie и lodash. Они уже загружены к тому моменту, когда угловой ход идет. – brando

+0

Я ищу более модульный подход :) Я мог загружать все зависимости изначально да, и хотя с обеих сторон есть про/минусы, я лично склоняюсь к модульному/компонентному подходу. – Umair

+0

У вас есть маршруты в вашем приложении? – dfsq

ответ

0

Можно ли отложить инициализацию всего компонента с углового, пока все зависимости не будут загружены

Просто добавьте lib как зависимость от файла. Поместите это в верхней части файла, который содержит компонент:

import * as lib from "lib" 

Это позволит эффективно загрузить «Lib» перед сапоги приложения вверх.

+0

Это не работает. Получение ошибки компилятора типа, что он не может найти модуль «lib» – Umair

+0

Исправить: в 'vendor.d.ts' добавить' declare module "lib" {var foo: any; export = foo; } ' – basarat

Смежные вопросы