Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何使用包含类名的变量来使用navCtrl.push()?_Angularjs_Typescript_Ionic3 - Fatal编程技术网

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

Angularjs 如何使用包含类名的变量来使用navCtrl.push()?,angularjs,typescript,ionic3,Angularjs,Typescript,Ionic3,我正在使用离子3和AngularJS/Typescript上的Visual Studio代码。 我使用这个.navCtrl.push()跳转到另一个页面。 我需要跳转到两个类/页面,它们分别称为“level1”和“level2”。当我使用 this.navCtrl.push(level2) 很好用! 但是,当我使用变量时: levelNbr: any; if(value == null) { this.levelNbr = "level1" } else { this.level

我正在使用离子3和AngularJS/Typescript上的Visual Studio代码。 我使用这个.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)
我得到一个错误,说:

未捕获(承诺中):无效链接:级别2

这意味着其实际读数为2级。然而,它并没有打开页面。 如何使用变量打开/推送页面

多谢各位

添加使用过的代码:

import { level1 } from './../levels/levels';
import { level2 } from './../levels/levels';
//all classes are in one file called levels
在app.modules.ts中,它们也被声明。

因此,新组件/页面的加载(在您的情况下推入堆栈)将与您在对这些组件使用“延迟加载”时的工作方式完全相同

显然(因为您得到的是无效链接错误),在这种情况下,您没有使用延迟加载

因此,为了帮助您的案例,您需要将相关组件导入到您尝试执行此操作的组件中,并分配组件:

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)中正确声明。

我已经声明了,但是您解决了我的问题!!!问题是我写的是这个。levelNbr=“Level1Component”而不是这个。levelNbr=Level1Component为此非常感谢!;)很乐意帮忙。