2015-08-08 3 views
0

В моем приложении «Угловое приложение» я показываю список предметов инвентаря. На этой странице есть форма для фильтрации или выполнения поиска. Эта форма отправляет на тот же URL-адрес для текущего шаблона маршрута/страницы, но добавляет параметры в URL-адрес для выполнения фильтра/поиска. т.е./#/запасов и/#/запасы? ключевые слова = widgetnameGET Params in AngularJS URL-адрес маршрута

Вот основной маршрут ...

myApp.config(function($routeProvider) { 
    $routeProvider 

    .when('/inventories', { 
     templateUrl: '/inventories.html', 
     controller: 'inventoriesController' 
    }) 
}); 

Я знаю, что я мог бы сделать что-то вроде примера ниже для маршрута с переменной параметр как/#/запасов/12 для конкретного ресурса инвентаризации, как так ...

.when('/inventories/:inventory_id', { 
    templateUrl: function(params) { return '/inventories/' + params.inventory_id + '.html'}, 
    controller: 'inventoryController' 
}) 

Но что бы я сделал для маршрута как/#/запасов? ключевые слова = widgetname & склад = 1 & min_qty = 5, который содержит все параметры фильтра rs в строке url? Как разместить параметры маршрута url на маршруте?

Я пытался что-то подобное, но не работает ...

.when('/inventories?:get_params', { 
    templateUrl: function(params) { return '/inventories?' + params.get_params}, 
    controller: 'inventoryController' 
}) 

Я знаю, что я мог бы попробовать использовать $ HTTP службу и работать с JSON, связывая массив результатов на сферу Ань ng-repeat или что-то в этом роде, но я предпочел бы просто вернуть шаблон, возвращенный с отфильтрованными результатами из url. Это возможно?

+0

вы можете добавить количество параметров в свой маршрут, например '/ inventoryories /: inventory_id /: keywords /: warehouse /: min_qty', чтобы вы могли получить доступ к тем же самым параметрам –

ответ

1

Вы должны иметь доступ к параметрам запроса из атрибута params, как и обычные параметры маршрута. Если у вас есть URL /inventories?keywords=widgetname, то значение params.keywords должно быть 'widgetname'.

Я написал fiddle, чтобы продемонстрировать это. Я тестировал только template, но я уверен, что он будет работать с templateUrl.

Смежные вопросы