如何在url中放置参数

时间:2018-05-22 07:39:26

标签: javascript angularjs

我有一个包含订单列表和搜索按钮的页面,我希望URL更改取决于我使用$ location.search的搜索结果,它可以工作,但我不知道如何在我的app.js中实现它在页面URL中,我想将其添加到URL中,因此当用户单击后退按钮时,他会再次获取过滤列表

这是我的控制器

function openPage (key,value,key1,value1) {
       $location.search(key, value);
       var params = $location.search();
    }

这是我的app.js并且无效

 .state('qa-dashboard.orders-list', {
        url: "/orders-list/?params",
        module: "private",
        templateUrl: "app/qa-dashboard/orders/orders-list/orders-list.html",
        controller: 'OrdersListCtrl',

我的控制器具有搜索功能,当用户进入页面时,我首先调用此函数

    function searchOrdersValue(){
    console.log(QaDashboardService.searchValue);
        if ( QaDashboardService.searchValue == 'pendeing'|| QaDashboardService.searchValue == 'problem'){
            model.status =QaDashboardService.searchValue;
            model.searchOrders();
        }
        else if (QaDashboardService.searchValue !== ''){

            if (isStringNumber(QaDashboardService.searchValue)){
                console.log('enter number')
                model.filterByNumber =QaDashboardService.searchValue;
                model.searchOrders()

            }

            else {
                model.startFrom= QaDashboardService.searchValue;
                model.startTo=QaDashboardService.searchValue1;
                model.searchOrders()
             }
        }

        if (model.status !==''){
            QaDashboardService.searchValue= ($stateParams.status) ? $stateParams.status:  '';

        }
        else if (model.startFrom !== ''){
            QaDashboardService.searchValue= ($stateParams.startFrom) ? $stateParams.startFrom:  '';
            QaDashboardService.searchValue1= ($stateParams.startTo) ? $stateParams.startTo:  '';

        }
        else {
            QaDashboardService.searchValue= ($stateParams.filterByNumber) ? $stateParams.filterByNumber:  '';

        }

2 个答案:

答案 0 :(得分:0)

您可以使用$ state.go(“您的州名”)并将参数传递给该页面,如下所示:

function openPage (key,value,key1,value1) {
       $location.search(key, value);
       var params = $location.search();
       $state.go('qa-dashboard.orders-list',{'params':params});
    }

在OrdersListCtrl上使用$ stateParams检索它。

答案 1 :(得分:0)

您好,您可以使用$ stateParams服务。您可以获得para值表单并过滤您的订单列表。

测试链接:http://localhost/qa-dashboard.orders-list?orderId=1&orderName=test

不要将此代码添加到app.js,它应该在控制器中。 你可以使用这段代码得到para值。

$ stateParams必须在控制器中添加依赖项。

SELECT A.Something, B.Something, C.Something
INTO #TempTable
FROM TableA A
INNER JOIN TableB B
    INNER JOIN TableC C ON C.FK = B.PK
ON A.JoinField = B.ID

现在,您可以使用Params过滤订单列表。

App.js代码应为。

var id = $stateParams.orderId;
var name = $stateParams.orderName;