2016-03-10 22 views
5

Tôi có một thành phần sử dụng thư viện javascript. Hiện tại tôi chỉ đang sử dụng system.js để tải phụ thuộcThành phần angular2 tải tập tin js ngoài js

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

Tuy nhiên sự chậm trễ này trong khởi tạo thành phần đang gây ra vấn đề với thành phần tiêu thụ khác. Về cơ bản, chức năng createControl đang chạy quá muộn.

Có thể trì hoãn việc khởi tạo toàn bộ thành phần với góc cho đến khi tất cả các phụ thuộc được tải xuống không?

+0

Tại sao không tải phụ thuộc vào thẻ tập lệnh trước khi tải góc? Tôi làm điều này với một vài thư viện, chẳng hạn như js.cookie và lodash. Họ đã được tải bởi thời gian góc được đi. – brando

+0

Tôi đang tìm một cách tiếp cận mô-đun hơn :) Tôi có thể tải tất cả các phụ thuộc ban đầu có, và mặc dù có pro/khuyết điểm trên cả hai mặt, cá nhân tôi tôi đang hướng tới cách tiếp cận mô-đun/thành phần. – Umair

+0

Bạn có tuyến đường trong ứng dụng của mình không? – dfsq

Trả lời

0

Có thể trì hoãn khởi của toàn bộ thành phần với góc cho đến khi tất cả phụ thuộc được tải xuống

Chỉ cần thêm lib như một sự phụ thuộc vào các tập tin. Đặt này trên đỉnh của các tập tin có chứa các thành phần:

import * as lib from "lib" 

này có hiệu quả sẽ được tải "lib" trước khởi động ứng dụng lên.

+0

Điều này không hoạt động. Nhận được một lỗi trình biên dịch phân loại mà nó không thể tìm thấy mô-đun "lib" – Umair

+0

Khắc phục: trong 'vendor.d.ts' thêm' khai báo mô-đun "lib" {var foo: any; export = foo; } ' – basarat

Các vấn đề liên quan