Javascript 使用“后退”按钮时恢复角度控制器中的过滤状态?
我有一个带有项目列表的订单列表页面,页面顶部有一组筛选选项(订单状态、订单号和日期)用于筛选项目。用户可以单击某个项目以查看该项目的详细信息页面 当用户查看详细信息并单击“上一步”按钮时,它将返回列表,但过滤器选项将重置为默认值 在做了一些研究之后,我知道我可以用Url来做,问题是我不知道怎么做。请帮帮我 我的控制器Javascript 使用“后退”按钮时恢复角度控制器中的过滤状态?,javascript,angularjs,Javascript,Angularjs,我有一个带有项目列表的订单列表页面,页面顶部有一组筛选选项(订单状态、订单号和日期)用于筛选项目。用户可以单击某个项目以查看该项目的详细信息页面 当用户查看详细信息并单击“上一步”按钮时,它将返回列表,但过滤器选项将重置为默认值 在做了一些研究之后,我知道我可以用Url来做,问题是我不知道怎么做。请帮帮我 我的控制器 function searchOrders() { $scope.isLoading = true; model.noData = false; m
function searchOrders() {
$scope.isLoading = true;
model.noData = false;
model.isSearch = true;
model.orders = {};
QaDashboardService.searchOrders(model.filterByNumber, model.status, model.startFrom, model.startTo)
.then(function (orders) {
if(orders) {
$scope.isLoading = false;
model.orders = orders;
}
}).catch(function (error) {
$scope.isLoading = false;
model.noData = true;
});
}
QaDashboardService.js
function searchOrders(orderNumber, status, startFrom, startTo) {
service.data = [];
var deferred = $q.defer();
var orderCollection = service.db.collection("orders");
if (orderNumber) {
orderCollection = orderCollection.where("number", "==", orderNumber);
}
if (status && status != "*") {
orderCollection = orderCollection.where("status", "==", status);
}
if (startFrom && startTo) {
startFrom = new Date(startFrom).getTime();
startTo = new Date(startTo).getTime();
orderCollection = orderCollection.where("created", ">=", startFrom).where("created", "<=", startTo);
}
orderCollection.get().then(function (querySnapshot) {
if (!querySnapshot.empty) {
querySnapshot.forEach(function (doc) {
service.data.push(doc.data());
deferred.resolve(service.data);
});
} else {
deferred.reject("no data");
}
}).catch(function (error) {
deferred.reject(error);
});
return deferred.promise;
}
function openPage (pageName) {
$state.go('qa-dashboard.orders-list',{'pageName':pageName});
};
我尝试了这种方法,url改变了,但是filterd列表消失了,就像有人刷新了页面一样 我将app.js中的url更改为如下所示
url: "/orders-list/:pageName"
我在QaDashboardService.js中应用了这个函数
function searchOrders(orderNumber, status, startFrom, startTo) {
service.data = [];
var deferred = $q.defer();
var orderCollection = service.db.collection("orders");
if (orderNumber) {
orderCollection = orderCollection.where("number", "==", orderNumber);
}
if (status && status != "*") {
orderCollection = orderCollection.where("status", "==", status);
}
if (startFrom && startTo) {
startFrom = new Date(startFrom).getTime();
startTo = new Date(startTo).getTime();
orderCollection = orderCollection.where("created", ">=", startFrom).where("created", "<=", startTo);
}
orderCollection.get().then(function (querySnapshot) {
if (!querySnapshot.empty) {
querySnapshot.forEach(function (doc) {
service.data.push(doc.data());
deferred.resolve(service.data);
});
} else {
deferred.reject("no data");
}
}).catch(function (error) {
deferred.reject(error);
});
return deferred.promise;
}
function openPage (pageName) {
$state.go('qa-dashboard.orders-list',{'pageName':pageName});
};
我在搜索函数中调用了它
function searchOrders(orderNumber, status, startFrom, startTo) {
service.data = [];
var deferred = $q.defer();
var orderCollection = service.db.collection("orders");
if (orderNumber) {
orderCollection = orderCollection.where("number", "==", orderNumber);
service.openPage(orderNumber);
}
if (status && status != "*") {
orderCollection = orderCollection.where("status", "==", status);
service.openPage(status);
}
if (startFrom && startTo) {
startFrom = new Date(startFrom).getTime();
startTo = new Date(startTo).getTime();
orderCollection = orderCollection.where("created", ">=", startFrom).where("created", "<=", startTo);
}
orderCollection.get().then(function (querySnapshot) {
if (!querySnapshot.empty) {
querySnapshot.forEach(function (doc) {
service.data.push(doc.data());
deferred.resolve(service.data);
});
} else {
deferred.reject("no data");
}
}).catch(function (error) {
deferred.reject(error);
});
return deferred.promise;
}
函数搜索订单(订单号、状态、起始日期、起始日期){
service.data=[];
var deferred=$q.deferred();
var orderCollection=service.db.collection(“订单”);
if(订单号){
orderCollection=orderCollection,其中(“number”,“==”,orderNumber);
service.openPage(订单号);
}
如果(状态和状态!=“*”){
orderCollection=orderCollection.where(“状态”、“=”、状态);
openPage(状态);
}
如果(从&startFrom&startTo开始){
startFrom=新日期(startFrom).getTime();
startTo=新日期(startTo).getTime();
orderCollection=orderCollection.where(“已创建”),“>=”,startFrom.where(“已创建”),“