我想保存当前状态,我不是指保存url和params,我想用范围保存整个视图..事实上,我想实现像搜索系统一样的facebook,但不同。我想在整个页面上显示结果,所以我将替换当前的主状态,当搜索栏被清除时,我们将恢复以前的状态。我不想重建状态立即恢复状态(没有服务器请求)+以避免复杂的操作(例如无限滚动数据..)。我发现了ui'router extras(粘性状态)插件,但是我们需要定义状态定义要保存的状态。 我为我糟糕的英语道歉..
答案 0 :(得分:0)
您可以使用angular local storage将日期保存在本地存储中。它将为您节省数据服务器之旅。
答案 1 :(得分:0)
这是一个架构决策。这个问题的答案不会很短,而且可能非常主观,不同的人会有不同的方法来实现它。
我建议您利用本地存储并对本地存储中存在的数据执行所有操作。
您这样做的方法是首先要了解所有服务器请求都需要通过A服务来完成,该服务返回localstorage中存在的网络是否处于脱机状态。
因此所有AJAX调用都将从控制器完成,如此
var getMeRequest = AuthService.getMe();
getMeRequest.promise.then(function(response){
if(response.cached) {
// $update views if need be
} else {
//Some code
}
});

在AuthService文件中,您可以这样做:
// In AuthService
this.getMe() = function () {
if(network.online) {
//Make AJAX call
// Update localstorage with whatever response
return {response: locastorageData, cached:false};
} else {
return {response: localstorageData, cached:true};
}
};

这不仅可以让您像在线一样进行所有ajax调用,还可以让控制器根据响应是否被缓存来更新视图。