嗨,
我注意到了一些奇怪的行为,当我工作在一个角度的项目。有一个要求具有可重用的自动保存功能,当用户试图使用表单从页面导航时会触发该功能。我们使用了一个警卫和一个指令的组合来实现这一点,这个指令可以应用于表单。
在这个指令中,我们正在决定是否允许用户导航,还是让他留在页面上--如果表单是有效的,我们将触发一个保存回调,并在回调完成后让用户离开,如果表单无效,我们会将用户保留在页面上。如果用户根本不与表单交互,那么让他们导航也是很重要的。翻译成代码如下所示:
if (form.dirty) {
if (form.valid) {
this.saveCallback().s
在我当前的注销呼叫中,我有如下内容:
getLogoutConfirmation(){
// get confirmation in modal and perform logout
// redirect to login page
}
问题是,当执行注销并调用重定向到登录时,将在该路由上调用canDeactivate防护,但用户已被注销。
那么,如何在执行注销之前调用canDeactivate guard,并在用户不想离开时取消注销操作。
谢谢。
我已经实现了使用角形式验证的掩体保护。如果用户单击ngForm字段。并尝试导航到不同的标签,用户将得到一个自定义确认弹出,这将说“放弃更改?”并返回真假。
这是我的护卫
import { NgForm } from "@angular/forms";
import { ComponentCanDeactivate } from './component-can-deactivate';
export abstract class FormCanDeactivate extends ComponentCanDeactivate {
abstract get f
我有一个Angular2应用程序。它的一个组件实现了CanDeactivate界面,以确认用户在页面之外的导航。以下是路由保护的实现:
export class DeactivateGuard implements CanDeactivate<MyComponent> {
canDeactivate(component: MyComponent) {
let can = component.canDeactivate();
return can;
}
}
以下是组件的代码:
canDeactivate() {
if (confirm("Are you sur