コンポーネント ページをサービスを介して別のページに渡すと、その別のコンポーネントは「未定義 [?]」でインスタンス化に失敗します。
これを達成する方法は?(コンテキスト: コンポーネント ナビゲーションを 1 つのサービスに集中できるようにするため)
アップデート
これは私たちの現在の回避策であり、Ionic Beta や Angular Beta のほとんどと同じように醜いものです。これは「PassThroughComponent」であり、navService を介してコンポーネントからコンポーネントへ動的にナビゲートするたびに呼び出されます (ユーザー ジャーニーを計算するいくつかのアルゴリズムがあります)。
ngOnInit() {
this.nextPage(this.navService.getNextPage())
}
nextPage(nextPageString) {
switch (nextPageString) {
case "Fairytales":
this.navController.push(Fairytales);
break;
case "Bitcoin":
this.navController.push(Bitcoin);
break;
case "Unicorns":
this.navController.push(Unicorns);
break;
case "Rainbows":
this.navController.push(Rainbows);
break;
case "Marbles":
this.navController.push(Marbles);
break;
case "Dogs":
this.navController.push(Dogs);
break;
case "Cats":
this.navController.push(Cats)
break;
default:
console.log("Unknown page", nextPageString)
}
}
動作しない:
import { Nav } from 'ionic-angular'
@Injectable()
export class NavService {
@ViewChild(Nav) nav;
public dismiss() {
this.nav.setRoot(HomePage)
}
...
browser_adapter.js:84 元の例外: TypeError: 未定義のプロパティ 'setRoot' を読み取れません
また、navController では動作しません。