2016-04-10 15 views
7

Có cách nào để xác định khi nào một trang ionic 2 đã được tải đầy đủ không? Tôi cần phải chèn một số html vào trang khi tất cả các trang html đã được tải. Lý tưởng nhất là tôi muốn có một chức năng trong lớp @page của tôi chạy khi trang đã được tải.Chức năng chạy khi một trang ionic 2 đã được tải đầy đủ

Hiện tại tôi đang chèn khung nội tuyến chứa cây nho vào hộp chứa div. Tôi đang gặp phải, khi chạy ứng dụng trên iPhone 5 chạy iOS 9, một số hành vi kỳ lạ, nơi cùng một cây nho đôi khi có kích thước với vùng chứa và đôi khi không. Tôi đoán rằng điều này có thể là do thời gian (nguồn cho khung nội tuyến nho được nhận như một phần của yêu cầu http).

+0

Bản sao có thể có của [Sự kiện để tải nội dung trang (Ionic 2)?] (Http://stackoverflow.com/questions/34944856/event-to-loaded-page-content-ionic-2) – user276648

Trả lời

23

Bạn có thể sử dụng ionViewDidLoad phương pháp:

@Page({ 
    templateUrl: 'build/pages/somepage/somepage.html' 
}) 
export class SomePage { 
    constructor() { 
    // ... 
    } 

    ionViewDidLoad() { 
    // Put here the code you want to execute 
    } 
} 

Các sự kiện vòng đời như 18 tháng 11 năm 2016 là:

  • ionViewDidLoad
  • ionViewWillEnter
  • ionViewDidEnter
  • ionViewWillLeave
  • ionViewDidLeave
  • ionViewWillUnload
  • ionViewCanEnter

Kể từ Ionic 2 đang được phát triển tích cực, mọi thứ thay đổi tất cả các thời gian. Nếu bạn muốn kiểm tra các sự kiện vòng đời hiện tại, vui lòng tham khảo: https://ionicframework.com/docs/v2/api/navigation/NavController/#lifecycle-events

+0

Cảm ơn vì điều đó. Tôi đã thử onPageLoaded nhưng nó chạy khi index.html đã nạp không khi somepage.html đã tải và đó là những gì tôi cần. –

+0

Bạn có thể dán một số mã không? Thật lạ là – artberri

+3

Ionic2 đang trong giai đoạn thử nghiệm. chức năng thay đổi. bây giờ nó được gọi là "ionViewLoaded()" –

2

Bạn có thể sử dụng vòng đời gọi lại ngAfterViewInit() của thành phần được tải cuối cùng (phụ thuộc vào định tuyến của bạn).

+0

Có loại chức năng này cho các thành phần không? –

+0

@ArmenSanoyan xin lỗi, tôi không hiểu bình luận của bạn. –

+0

Nếu tôi không nhầm hàm ngAfterViewInit() được gọi sau khi trang được tải nhưng nó không hoạt động trong các thành phần. Vì vậy, câu hỏi của tôi là có functioins như ngAfterViewInit() mà làm việc trong các thành phần quá? –

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