Angularjs 如何使用包含类名的变量来使用navCtrl.push()?
我正在使用离子3和AngularJS/Typescript上的Visual Studio代码。 我使用这个.navCtrl.push()跳转到另一个页面。 我需要跳转到两个类/页面,它们分别称为“level1”和“level2”。当我使用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
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为此非常感谢!;)很乐意帮忙。