Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用“后退”按钮时恢复角度控制器中的过滤状态?_Javascript_Angularjs - Fatal编程技术网

Javascript 使用“后退”按钮时恢复角度控制器中的过滤状态?

Javascript 使用“后退”按钮时恢复角度控制器中的过滤状态?,javascript,angularjs,Javascript,Angularjs,我有一个带有项目列表的订单列表页面,页面顶部有一组筛选选项(订单状态、订单号和日期)用于筛选项目。用户可以单击某个项目以查看该项目的详细信息页面 当用户查看详细信息并单击“上一步”按钮时,它将返回列表,但过滤器选项将重置为默认值 在做了一些研究之后,我知道我可以用Url来做,问题是我不知道怎么做。请帮帮我 我的控制器 function searchOrders() { $scope.isLoading = true; model.noData = false; m

我有一个带有项目列表的订单列表页面,页面顶部有一组筛选选项(订单状态、订单号和日期)用于筛选项目。用户可以单击某个项目以查看该项目的详细信息页面

当用户查看详细信息并单击“上一步”按钮时,它将返回列表,但过滤器选项将重置为默认值

在做了一些研究之后,我知道我可以用Url来做,问题是我不知道怎么做。请帮帮我

我的控制器

    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(“已创建”),“