天天看點

應該是Angular2的一個bug?

     為了應對未來的趨勢,及時趕上下一趟網際網路技術,我最近也在通過具體項目研究angular2,首先必須要吐槽的是,學習angular2的成本本身不高,但是一堆的工具、配置實在讓人 很是焦灼,就像asp.net core一樣,所有的東西都在向同樣的方向邁進:盡量使用已經造好的輪子,而不是自己再弄一個。

     當然,統一是好的,但是對于對前端不是太敏感的我來說,還是挑戰不小,這就要求我要學好angular2,必須要熟悉一系列的工具鍊。加油。

今天要說的是一個可以說我遇到的很詭異的問題,我在angular1上進行了相同的嘗試,沒有發現這個問題,但是在angular2上發現了,我将使用場景還原一下,當然我隻是抽取其中的一部分,希望有人遇到或知道如何解決回複一下,當然如果我找到答案,會注明。

    背景:我通過angular2 下叫ng2,的路由來實作視圖的導航,我使用官方文檔英雄清單來說明。我從英雄清單頁面通過路由導航到具體的詳情頁面,但是我準備實作從詳情頁面導航到清單頁面時出現的問題。

  我自己嘗試了幾種實作方式:

 window.history.back():通過浏覽器的回退實作

通過router.navigate(['/heros']).其中router通過構造函數進行注入

我要說明的問題就是通過第二種實作。

 步驟1:建立index.html頁面,沒有什麼特别的地方,隻是設定了ng2的啟動頁面

步驟2:建立app檔案夾,并且添加main.ts頁面

添加ng2的啟動子產品AppModule

在app檔案夾添加app.module.ts檔案

  

重點是我們導入了RoutingModule子產品

添加路由配置app.routing.ts

添加英雄清單頁面heros.component.ts

重點就出現在我們通過構造函數注入的Router上,我們的英雄清單通過router.navigate(

)來導航到了詳情頁面,請注意,router是通過構造函數注入

詳情頁面元件代碼

重點是詳情頁面的goBack()方法,我本來準備通過路由的navigate方法 來實作導航,并且router是通過構造函數注入,但是我在使用時this.router會為null,導緻我無法通過這種方式實作頁面跳轉。

其實我想說的這個倒不是ng2的bug,可能有些地方沒有設定成功,之是以說是bug,而是因為官方沒有提供具體的詳細資訊。

有知曉的麻煩回複一下,我相信如果要使用頁面跳轉,肯定會用到。

 更詳細的内容可以參考官方的英雄清單。

我又回來了,回到了技術最前線,

繼續閱讀