如何使用包含类名的变量使用navCtrl.push()?

时间:2018-06-15 14:52:29

标签: angularjs typescript ionic3

我在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中也会声明它们。

1 个答案:

答案 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)中正确声明这些导入的组件(级别)

相关问题