如何以角度保持路线视图

问题描述

有什么方法可以使页面的视图保持成角度,以便作为用户,当我重新访问相同的路线时,可以得到相同的视图。

例如RouteA一个搜索栏,当用户搜索某项内容时,它将在下面加载结果,现在,如果用户在该页面上进行了搜索,并且 之后,他离开该页面并移至RouteB进行其他操作。当他重新访问该页面时,它应该具有相同的视图,即在搜索栏中搜索术语并在网格中加载数据。

解决方法

对于您的用例,您可以在用户导航到其他路线之前保存FormGroup实例。

if (this.searchFormGroup.valid) {
      this.searchService.setLastSearch(this.searchFormGroup);
}

setLastSearch的定义可能类似于

 setLastSearch(searchFormGroup) {
    this.lastSearch = searchFormGroup;
  }

当用户重新访问该页面时,请使用ngOnInit方法检查是否已经保存了搜索(导航前已保存的formGroup实例)。

this.lastSearch = this.searchService.getLastSearch();

。如果答案是肯定的,请使用patchValue填充当前的formGroup实例。像下面这样

if (this.lastSearch) {
 this.patchLastSearchedValue();
}

patchLastSearchedValue的代码可能类似于

  patchLastSearchedValue(): void {
    Object.keys(this.lastSearch.value).forEach(name => {
      this.searchFormGroup.controls[name].patchValue(
        this.lastSearch.controls[name].value
      );
    });
  }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...