解析器获取数据后,Angular 路由器无法导航

时间:2021-07-16 13:44:42

标签: angular angular-observable angular12

我有一个组件,显示 Ticket 的详细信息,并带有一个按钮,该按钮应该删除 Ticket,然后路由到包含所有 Tickets 的表。我正在使用 Resolve 接口在路由到表之前获取 Ticket 数据。

现在,删除操作成功,但应用停留在没有数据的工单详情页面,也没有导航到工单表。

我可以在浏览器开发工具中看到工单表数据已加载,但应用没有导航到工单表。

我卡住了。有什么想法吗?

tickets-table-resolver.service.ts

import { Injectable } from '@angular/core';
import { Resolve } from '@angular/router';
import { first } from 'rxjs/operators';
import { TicketService } from './ticket.service';

@Injectable({
  providedIn: 'root',
})
export class TicketsTableResolverService implements Resolve<any> {
  constructor(private ticketService: TicketService) {}

  resolve() {
    return this.ticketService.getTickets().pipe(first());
  }
}

我试过在没有 this.ticketService.getTickets() 的情况下调用 pipe(first()) 并且我试过调用 `pipe(take(1))

路线如下: routes.ts

{
path: 'tickets',
component: TicketsTableComponent,
resolve: { tickets: TicketsTableResolverService },
},

这是我正在使用的删除功能: ticket.service.ts

public delete(id: number): Observable<any> {
    return this.http.delete(`${this.apiServerUrl}/${id}`);
}

0 个答案:

没有答案