如果我通过服务将组件页面传递给另一个组件,则其他组件无法使用“未定义 [?]”进行实例化。
如何做到这一点?(上下文:这样我就可以将组件导航集中在一个服务中)
更新
这是我们目前的解决方法,如果我可以这么说的话,就像大多数 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。