在url angular中设置查询参数

时间:2015-04-14 08:50:43

标签: javascript angularjs

例如,我有这个网址:http://local.com/。当我在我的SearchController中调用该函数时,我想设置text=searchtext并获取这样的网址: http://local.com/?text=searchtext

我该怎么做?我试过了$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);       
        }
    );
}

1 个答案:

答案 0 :(得分:0)

您必须在模块的配置中设置html5mode才能删除URL中的#/。

see the angularjs guide on using $location

此外,如果您不希望在更改查询参数时重新加载控制器/路由,则可能需要在路由配置中将reloadOnSearch设置为false。

示例:

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