例如,我有这个网址: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);
}
);
}
答案 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
});
});