Javascript 当下拉列表更改时,AngularJS更改URL中的参数值
我有以下网址: 我有一个季度下拉列表,包含全年的季度:全部,第一季度,第二季度,第三季度,第四季度 当用户更改下拉列表的值时,我有一个方法集\u selected\u quarter调用 我如何从以下位置更改url: 致: 当用户将下拉列表从Q2更改为All时 我附上了该页的辩护词:Javascript 当下拉列表更改时,AngularJS更改URL中的参数值,javascript,angularjs,Javascript,Angularjs,我有以下网址: 我有一个季度下拉列表,包含全年的季度:全部,第一季度,第二季度,第三季度,第四季度 当用户更改下拉列表的值时,我有一个方法集\u selected\u quarter调用 我如何从以下位置更改url: 致: 当用户将下拉列表从Q2更改为All时 我附上了该页的辩护词: .when('/mainpage/:client_id/:publisher_id/:is_agency/:agency_id?/:filter_year?/:filter_quarter?/:filter_
.when('/mainpage/:client_id/:publisher_id/:is_agency/:agency_id?/:filter_year?/:filter_quarter?/:filter_advertiser?/', {
templateUrl: '/partials/mainpage.html',
controller: 'MainPageCtrl',
title:'mainpage'
}
查看绑定到
的变量,使用ng model
选择下拉列表,然后使用$location
根据需要更改URL
<select ng-model="quarter">
<option value="all">All</option>
<option value="q1">Q1</option>
<option value="q2">Q2</option>
<option value="q3">Q3</option>
<option value="q4">Q4</option>
</select>
问题是“/2063/23/true/1099/2014/”是动态的,如果每个页面上的url都在更改,我如何检索它并更改“quarter”…您可以通过向控制器中注入$routeParams来读取当前url参数。执行console.log($routeParams)
查看设置了哪些参数。如果每个页面上都有此功能,我建议您创建一个指令。那么我需要根据这些参数重新创建url吗?如何防止页面刷新?是的,您需要重新创建URL。$route
将更改,您将使用新路由重新初始化控制器,但如果您使用HTML5模式,则页面不应刷新。如果您不想重新初始化控制器,我将使用搜索
(请参阅$route documentation)。虽然它工作正常,但仍会刷新页面,我怎么能忽略它?
$scope.$watch('quarter', function(quarter) {
if (!quarter) {
return;
}
$location.path('/2063/23/true/1099/2014/' + quarter + '/0/');
});