我已經更新了我的項目和依賴關係。 每當我第一次渲染一個頁面時,(除了root)它都不能馬上工作。ionic2意見不更新,代碼確實執行
F/e我有一個根頁面,它是一個登錄表單。無論何時在localStorage中存在令牌,發射器都會將其提供給登錄頁面。然後注入NavController,推我的主頁,一個TabController。
這不會馬上發生,我可以摘下我的鼻子,去浴室它停留在根頁面上。當我真正關注我的輸入時,它只會推動新視圖。 (它也顯示了一些黑色,當它不能呈現頁面,當你做錯事情時離子崩潰
然後在標籤頁上,第一個標籤不會呈現,但是當我點擊第一個對於其他選項卡,它們需要單擊兩次(選項卡欄只在單擊兩次時才變爲活動狀態)。此後,它的所有工作都正常,但當然,不是我們想要的。 這是一個什麼視頻我看到了,如果你在0.0時暫停視頻,你會看到日誌狀態Token successfull。這就像在代碼中一樣,在推動之前,新頁面被啓動,視圖不會被更新,直到我點擊像輸入一樣的元素。
ngOnInit() {
this.sessionService.subscribe(token => {
if (token && token.length) {
console.log("token returned success!", token, this.navController);
setTimeout(() => { this.navController.push(<any>MainTabs); }, 250);
} else {
console.log("token returned", token);
}
});
}
日誌中的錯誤是與瀏覽器中的離子相關的。如你所見,當Push被觸發時,看起來應該是這樣,第一頁不斷顯示一個加載器。這應該消失一旦內容被加載(它被加載我看到console.logs觸發器設置值)。如果我現在點擊第一個標籤項目2次,它會顯示內容。 我選擇點擊「Acties」按鈕,它顯示了第一個選項卡(注意我點擊了第三個)。點擊第四個呈現第三個頁面,在此之後,它們被渲染一次並按預期點擊工作。
Wierd?
我沒有訪問視頻(拒絕訪問)。 ..'sessionService'做什麼? –
Ah shucks視頻已過期。 sessionService的作用並不重要,但它存儲諸如令牌等東西在localStorage中。在啓動應用程序時,它會檢查存儲並將其發送給訂閱者。 (令牌)。所以他們可以處理它,並假設它在會話中。一旦它失效,它將清除令牌併發出此等。 –
這讓我想到區域問題。你是否嘗試使用'NgZone'類在區域內執行訂閱的回調?請參閱https:// angular。io/docs/ts/latest/api/core/NgZone-class.html –