gpt4 book ai didi

angular - 为子组件启用 candeactivate

转载 作者:行者123 更新时间:2023-12-04 17:37:12 28 4
gpt4 key购买 nike

我正在开发一个 angular 应用程序,如果用户在编辑时离开页面时未保存更改,我需要显示一条警报消息。

我已经在路由中创建并注册了一个 candeactivate 保护,它在父组件中工作正常。但不能在子组件中工作。如何解决这个问题?

{
path: 'create',
component: CreateComponent,
canDeactivate: [ConfirmationGuard],
},
{
path: ':id',
component: ViewUserComponent,
children: [
{
path: ':id',
component: AddressComponent,
canDeactivate: [ConfirmationGuard],
},
],
canDeactivate: [ConfirmationGuard],
},

“创建”运行良好,但地址组件无法正常工作,因为它是子组件!

确认 guard .ts:-
import { Component } from '@angular/core';
import { CanDeactivate } from '@angular/router';
import { ConfirmLeaving } from './interface';

export declare class ConfirmationGuard implements
CanDeactivate<ConfirmLeaving | Component> {

canDeactivate(component: ConfirmLeaving | Component): Promise<boolean>;
}

最佳答案

ConfirmationGuard 需要是一个实际的服务......换句话说,它必须是@Injectable,并且在一个模块中提供(或者你可以使用providedIn:root)。

关于angular - 为子组件启用 candeactivate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56185789/

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