我在Ionic 3和AngularJS / Typescript上使用Visual Studio Code。 我使用this.navCtrl.push()跳转到另一个页面。 我需要跳转到两个类/页面,它们被称为" level1"和" level2"。当我使用
this.navCtrl.push(level2)
它工作正常! 但是当我使用变量时:
levelNbr: any;
if(value == null)
{
this.levelNbr = "level1"
}
else
{
this.levelNbr = "level2"
}
this.navCtrl.push(this.levelNbr)
我收到错误说:
未捕获(承诺):无效链接:level2
这意味着它的实际阅读水平2。但它没有打开页面。 如何使用变量打开/推送页面?
谢谢
添加用过的代码:
import { level1 } from './../levels/levels';
import { level2 } from './../levels/levels';
//all classes are in one file called levels
在app.modules.ts中也会声明它们。
答案 0 :(得分:1)
因此,在对这些组件使用“延迟加载”的情况下,加载(在您的情况下推入堆栈)的新组件/页面将完全按照您的方式工作。
显然(因为你收到了无效的链接错误)你不是在这种情况下使用延迟加载。
因此,为了帮助您解决问题,您需要将相关组件导入到您尝试执行此操作的组件中并分配组件:
import { Level1Component } from '../whatever";
import { Level2Coomponent } from '../whatever2";
...
if(value == null)
{
this.levelNbr = Level1Component
}
else
{
this.levelNbr = Level2Component
}
this.navCtrl.push(this.levelNbr)
当然,应该在整个应用程序的模块(app.module.ts)中正确声明这些导入的组件(级别)