首页 > 解决方案 > 当我通过 angular7/8 中的路由在两个或多个组件之间切换时如何避免丢失数据?

问题描述

我有 3 个组件,它们不是彼此的父亲或孩子,我通过路由在它们之间切换,它们每个内部都有一个表单,我想在切换(通过路由)到之后使用另一个内部的表单数据,但是由于组件在通过路由切换到其他地方后会破坏,它们的数据也会破坏,所以我该怎么办?(我尝试了服务但没有回答!)

标签: angular

解决方案


有2种方式:

  1. 使用可注入对象:

//班级

@Injectable({
    providedIn: 'root'
})
export class GlobalDataService {
   public var1: number = 0;
   public var2: string = 0;
}

//Component 1

export class Component1 {

    constructor(public globalDataService : GlobalDataService ) {
      this.globalDataService.var1 = 1;
    }
}

//Component 2

export class Component2 {

    constructor(public globalDataService : GlobalDataService ) {
      console.log(this.globalDataService.var1) //Should logs 1;
    }
}
  1. 创建一个 Observable (但我认为在这种情况下它是一个矫枉过正)

推荐阅读