как поставить параметр в URL - PullRequest
0 голосов
/ 22 мая 2018

У меня есть страница со списком заказов и кнопкой поиска, и я хочу, чтобы изменение URL-адреса зависело от результата поиска. Я использовал $ location.search, и он работает, но я не знаю, как реализовать это в моем app.jsв странице URL, я хочу добавить его к URL, чтобы, когда пользователь нажимает кнопку «Назад», он снова получает список фильтрации

, это мой контроллер

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

, это мое приложение.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 голосов
/ 22 мая 2018

Привет, вы можете использовать сервис $ stateParams.Вы можете получить форму значения параметра и отфильтровать список заказов.

тестовая ссылка: http://localhost/qa-dashboard.orders-list?orderId=1&orderName=test

Не добавляйте этот код в app.js, он должен быть в контроллере.Вы можете получить значение параметра, используя этот код.

$ stateParams необходимо добавить как зависимости в контроллере.

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

Теперь вы можете отфильтровать список заказов с помощью Params.

App.js код должен быть.

$stateProvider.state('qa-dashboard.orders-list', {
        url: '/orders-list/?orderId$orderName',
        views: {           
                templateUrl: 'app/qa-dashboard/orders/orders-list/orders-list.html',
                controller: 'OrdersListCtrl'        
        }
    });
0 голосов
/ 22 мая 2018

Вы можете использовать $ 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...