我有一个cordova应用程序。 location.back()在设备或仿真器上的工作时间很长。为什么?有解决办法吗?
constructor(
private location: Location
) { }
onClick(){
this.location.back();
}
答案 0 :(得分:1)
您可能正在NgZone之外奔跑。您的代码显然是对您实际工作的简化。要测试您是否确实在区域中,可以执行以下操作:
onClick(){
this.location.back();
console.log('In Zone:', NgZone.isInAngularZone())
}
如果该记录为false
,则应检查为什么退出该区域。同样,根据您发布的代码量,这是无法确定的。要检查变更检测是否确实存在问题,可以尝试以下操作以查看其是否更快:
// don't use this in production
constructor(
private location: Location,
private app: ApplicationRef
) { }
onClick(){
this.location.back();
this.app.tick();
}