angularjs使用路由怎么实现返回上一页,页面内容不会刷新?

比如一个查询的页面,上面有很多的查询条件,选择了查询条件后,得到查询结果。然后点击查询结果跳转至查询结果的
详情页面。这时在详情页面,点击返回按钮,怎么能做到返回到查询页面,但是查询页面的条件还是保留着刚刚的条件?
用的是angularjs,页面间的切换用的是视图。

阅读 17.3k
4 个回答

我是用service实现的,单例的,写个storeService

#存储,例如搜索条件set('xxxSearch', {xxx});
set(key, value);

#获取,get('xxxSearch');
get(key);

Angular2的写法(typescript)

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

@Injectable()
export class StoreService {

    private data: any = {};

    public save(key: any, data: any) {
        this.data[key] = data;
    }

    public get(key: any) {
        if(this.data.hasOwnProperty(key)) {
            return this.data[key];
        } else {
            return false;
        }
    }
}

你切换路由的时候伴随着请求数据,重新渲染页面,你的需求其实可以用状态管理工具解决,angularjs的话推荐 ng-redux ,你将查询条件的状态存到 store 里去,然后跳转回来再从 store 取出来赋值进去,实现跨组件跨页面的传输,类似的库还有 Flux(不推荐使用)

我是用$rootScope实现的

$state.go('上一个页面',{查询参数})

把参数传回查询的页面 就可以了

window.history.back() 返回上一页面 貌似也可以实现

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题