【问题标题】:Angular 7/Electron: Routing does not complete after BrowserWindow.hide followed by BrowserWindow.showAngular 7/Electron:在 BrowserWindow.hide 后跟 BrowserWindow.show 之后路由未完成
【发布时间】:2019-06-08 21:55:34
【问题描述】:

我有一个在 Electron 窗口中运行的 Angular 7 应用程序。 main.ts 中的 Electron 进程必须执行以下操作:

  1. main.ts: 显示窗口 + 将 url 加载到 Angular 应用程序
  2. Angular:做它的事
  3. Angular:使用 ipcRenderer 告诉主进程它暂时完成了
  4. main.ts: BrowserWindow.hide()
  5. main.ts:还有其他的吗
  6. main.ts: BrowserWindow.show()
  7. main.ts: mainWindow.webContents.send('route', '/myroute');
  8. 角:this.ipcRenderer.on('route', (event: any, route: string) => { this.router.navigateByUrl(route); });

预期行为:窗口隐藏,然后显示并显示新组件。

实际行为:窗口隐藏,然后显示并显示部分加载的组件,然后显示前一个路由的(例如入口点)组件。

app-routing.module.ts

import { NgModule } from '@angular/core';
import { Router, RouterModule, Routes } from '@angular/router';

<route component imports>

const routes: Routes = [
    { path: '', redirectTo: '/entrypoint', pathMatch: 'full' },
    { path: 'entrypoint', component: EntryPointPageComponent },
    { path: 'myroute', component: MyRouteComponent },
    { path: '**', redirectTo: '/entrypoint' }
];

@NgModule({
    exports: [ RouterModule ],
    imports: [ RouterModule.forRoot(routes, { useHash: true }) ]
})

export class AppRoutingModule {
    constructor(private router: Router) {
        this.router.events.subscribe((value) => {
            console.log(`Router event! ${ typeof value}: ${ value }`);
        }, (err) => {
            console.log(`Router failure! ${ err }`);
        });
    }
}

当该路由到/myroute 时,我看到以下事件按此顺序进行:NavigationStartRoutesRecognizedGuardsCheckStartChildActivationStartActivationStartGuardsCheckEndResolveStart, ResolveEnd, ActivationEnd, ChildActivationEnd, NavigationEnd, Scroll.

最后,我使用控制台日志语句实现了MyRouteComponent 中的所有事件生命周期,但没有一个被执行。

您知道阻止路由成功运行的问题是什么吗?

【问题讨论】:

    标签: angular typescript electron angular2-routing


    【解决方案1】:

    我们能够在内部解决这个问题,现在我觉得很愚蠢。

    诀窍是将路由请求封装在 ngZone.run() 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 2019-07-12
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多