我正在使用电子开发 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);
}
Run Code Online (Sandbox Code Playgroud)
所以,在这里,控制台上的事件日志_router.navigate说
我还添加了一个控制台语句来查看承诺返回的内容。
this._router.navigate(['/next', 'route']).then(
success => console.log('navigation success');
failure => console.log('navigation end');
);
Run Code Online (Sandbox Code Playgroud)
它打印“导航成功”。但是,该组件不会加载。不知道发生了什么。任何帮助是极大的赞赏。
注意:如果不涉及电子,则不会发生这种情况。例如下面的代码工作得很好
public nextButtonClickedHandler() {
this._router.navigate(['/next', 'route']);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
解决方法...
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]))
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |