2015-04-14 3 views
0

Например, у меня есть этот URL: http://local.com/. Когда я вызываю функцию в своем SearchController, я хочу установить text=searchtext и получить такой url: http://local.com/?text=searchtext.Установить параметры запроса в url angular

Как я могу это сделать? Я попытался $location.search('text', 'value');, но я получил этот адрес: http://local.com/#/?text=searchtext

$scope.searchTracks = function() { 

    Search.search.get($scope.params, function(data) { 
     /** Set params in query string */ 
     $location.path('/').search('text', $scope.text);  
     } 
    ); 
} 

ответ

0

Вы должны установить html5mode в конфигурации вашего модуля для того, чтобы избавиться от #/в URL.

see the angularjs guide on using $location

Кроме того, вы можете установить reloadOnSearch к ложному в конфигурации маршрута, если вы не хотите, чтобы ваш контроллер/маршрута для перезагрузки при изменении параметра запроса.

Пример:

angular.module('myApp', []).config(function($locationProvider, $routeProvider) { 
     $locationProvider.html5Mode(true); 
     $locationProvider.hashPrefix('!'); 
     $routeProvider.when('/', { 
      /*{other route options here}*/ 
      reloadOnSearch: false 
     }); 
}); 
+0

но теперь не работают ссылки на сайте –

+0

@iilexial вы используете '' link text на ваши ссылки? В частности обратите внимание на часть 'ng-href'. Угловые не смогут работать с вашими маршрутами по ссылкам только с помощью стандартного 'href'. Также убедитесь, что у вас нет '# /' перед вашими ссылками теперь, когда включен html5mode. –

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