我還是個學習者。不僅在Ionic中,也在Angular中。Ionic2:不能在服務中使用NavController。
我已經寫了一些頁面,並希望爲每個頁面添加頁腳,用戶可以通過所有主頁進行切換。在寫完第二頁之後,我發現爲此提供服務會很好,因爲我再次使用了相同的方法。
這裏是我的服務看起來像現在:
export class Navigation {
public navCtrl: NavController;
onLoadHome(){
this.navCtrl.push(HomePage);
}
}
當我現在請Navigator.onLoadHome()在一個HTML模板,我得到了以下錯誤: 無法讀取屬性的「推動」未定義。
所以我知道我的應用程序找到服務,並找到方法。但我的navCtrl是未定義的。我嘗試了另外一種方法:
export class Navigation {
constructor(private navCtrl: NavController){}
onLoadHome(){
this.navCtrl.push(HomePage);
}
}
現在我又收到一條錯誤消息:無法解析導航的所有參數。
我真的不知道該怎麼做才能完成這項工作。我希望你能幫助我。
(順便說一句,我已經縮短該類一點。但是其他的方法,像onLoadHome一樣,只爲其他頁面。)
發佈'NavController' –
['NavController'](https://ionicframework.com/docs/api/navigation/ NavController /)只能在頁面/組件中注入。在服務中操作導航堆棧通常不是一個好主意 –
您可以像這樣的'onLoadHome(navCtrl:NavController)''將'NavController'對象傳遞給'onLoadHome()'函數。 – hrdkisback