2016-03-10 27 views
5

Bir javascript kitaplığı kullanan bir bileşenim var. Şu anda sadece bileşenin başlatma bu gecikme bileşeni tüketen başka bir soruna neden Ancak bağımlılıkAngular2 bileşen yükleme harici js lib dosyası

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

yüklemek için system.js kullanıyorum. Aslında createControl işlevi çok geç çalışıyor.

Tüm bağımlılıklar indirilene kadar tüm bileşenin başlatılmasını açısal olarak geciktirmek mümkün mü?

+0

Açısal yük yüklenmeden önce neden komut dosyası etiketlerindeki bağımlılığı yüklemiyorsunuz? Bunu js.cookie ve lodash gibi birkaç kütüphaneyle yapıyorum. Onlar zaten açısal sürüme geçiyorlar. – brando

+0

Daha modüler bir yaklaşım arıyorum :) Başlangıçta tüm bağımlılıkları yükleyebilirim evet, ve her iki taraftaki yanlısı/eksileri olsa da, şahsen ben modüler/bileşenli yaklaşıma yöneliyorum. – Umair

+0

Uygulamanızda rota var mı? – dfsq

cevap

0

tüm bağımlılıkları Sadece dosya üzerinde bir bağımlılık olarak lib eklemek

indirilene kadar mümkün açısal ile tüm bileşenin başlatma geciktirmek için mi. bileşenini içeren dosya üstündeki bu koyun:

import * as lib from "lib" 

Bu etkin "lib" önce uygulama botları yukarı yükleyecektir.

+0

Bu çalışmıyor. "Lib" modülünü bulamadığı bir kodlayıcı derleyicisi hatası alınıyor – Umair

+0

Düzeltme: 'vendor.d.ts' içinde 'declare module' lib add {lib: {var foo: any; export = foo; } ' – basarat