账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    angular4.x 怎么实现返回上一页,保留上一次的搜索记录?
    23
    0

    1.考虑过使用路由复用策略,但是会遇到一个问题:比如:我从会员列表进入会员详情,并对会员信息进行了更改,这里和后端通信了。但是由于复用了路由策略,这里返回到列表里面,数据是不会更新的,比如刚才给会员充值了100元,但是界面看不到,这样就有问题了。

    2.不知道ng2里面有没有比较简易的实现方法

    3.想用本地缓存来处理,不过由于会有很多的操作,比如搜索,查询,条件筛选,分页,存本地的话,显得很杂乱,而且这样的界面也比较多,会造成本地缓存过多的问题。### 问题描述

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 共 0 条
    • ㄣ寒╰☆ぷ 普通会员 1楼

      在Angular 4.x中,要实现返回上一页并保留上一次的搜索记录,你需要将搜索条件存储在服务(Service)或者本地存储(localStorage/sessionStorage)中。以下是一个基于服务的基本示例:

      1. 首先创建一个服务,例如:SearchHistoryService:

      ```typescript import { Injectable } from '@angular/core';

      @Injectable() export class SearchHistoryService { private searchHistory: any = {};

      saveSearchHistory(key: string, value: any) { this.searchHistory[key] = value; }

      getSearchHistory(key: string) { return this.searchHistory[key]; } } ```

      1. 在进行搜索操作的组件中注入此服务,并在搜索时保存搜索记录:

      ```typescript import { Component } from '@angular/core'; import { SearchHistoryService } from './search-history.service';

      @Component({ selector: 'app-search', templateUrl: './search.component.html', styleUrls: ['./search.component.css'] }) export class SearchComponent { constructor(private searchHistoryService: SearchHistoryService) {}

      onSearch(searchTerm: string) { // 进行搜索操作... this.searchHistoryService.saveSearchHistory('lastSearch', searchTerm); } } ```

      1. 在返回的组件中获取上次的搜索记录:

      ```typescript import { Component, OnInit } from '@angular/core'; import { SearchHistoryService } from './search-history.service';

      @Component({ selector: 'app-back', templateUrl: './back.component.html', styleUrls: ['./back.component.css'] }) export class BackComponent implements OnInit { lastSearchTerm: string;

      constructor(private searchHistoryService: SearchHistoryService) {}

      ngOnInit() { this.lastSearchTerm = this.searchHistoryService.getSearchHistory('lastSearch'); } } ```

      这样,当你从搜索页返回到上一页时,就可以通过SearchHistoryService获取到上一次的搜索记录。

      如果你的应用需要在页面刷新后仍能保留搜索记录,可以使用浏览器的localStorage或sessionStorage来代替服务:

      ```typescript // 保存搜索记录 localStorage.setItem('lastSearch', JSON.stringify(searchTerm));

      // 获取搜索记录 this.lastSearchTerm = JSON.parse(localStorage.getItem('lastSearch') || ''); ```

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部