gpt4 book ai didi

angular 2 router.navigate 不适用于 Electron IPC 回调

转载 作者:行者123 更新时间:2023-12-03 12:21:10 26 4
gpt4 key购买 nike

我正在使用 Electron 开发 Angular 2 应用程序。这就是我想要做的。
我在 html 中有一个下一个按钮 <button (click) = nextButtonClickedHandler()>

nextButtonClickedHandler描述如下:

public nextButtonClickedHandler() {
this.requestElectronMainProccess(this.afterResponseReceived);
}

private public afterResponseReceived() {
this._router.navigate(['/next', 'route']);
}

public requestElectronMainProccess(callbackFn: Function) {
this._electronService.send('request', 'some data');
this._electronService.once('response', callbackFn);
}

所以,这里是控制台上_router.navigate 之后的事件日志说

  1. 已识别路线
  2. guard 检查开始
  3. Guards 检查成功
  4. 警戒检查结束
  5. 导航结束

我还添加了一个控制台语句来查看 promise 返回的内容。

this._router.navigate(['/next', 'route']).then(
success => console.log('navigation success');
failure => console.log('navigation end');
);

它打印“导航成功”。但是,该组件不加载。不知道发生了什么。任何帮助是极大的赞赏。

注意:如果不涉及 Electron ,则不会发生这种情况。例如下面的代码工作得很好

public nextButtonClickedHandler() {
this._router.navigate(['/next', 'route']);
}

最佳答案

解决方法...

import { Router } from '@angular/router';
import { NgZone } from '@angular/core';

constructor(private zone: NgZone, private router: Router){
ipcRenderer.on('youevent', (event) =>
this.zone.run(() => this.router.navigate([path]))
)
}

关于angular 2 router.navigate 不适用于 Electron IPC 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48087022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com