在routeprovider或其他解决方案中处理查询字符串。
在routeprovider或其他解决方案中处理查询字符串。
如何在AngularJS的路由提供器(routeprovider)配置中处理类似(index.php?comment=hello)这样的查询字符串。\n示例:\n
angular.module('app', ['ngRoute']) .config(function($routeProvider, $locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false }).hashPrefix('!'); $routeProvider .when('/index.php?comment=hello',{ redirectTo:'/index.php' });
问题原因:用户想要在路由提供程序(routeProvider)中处理查询字符串,但是上述提供的解决方法并不适用于该要求。
解决方法:根据提供的链接,我们可以在控制器中处理查询字符串,而不是在配置中处理。
以下是解决方法的代码示例:
$stateProvider.state('/viewPage/:param1/:param2', { templateUrl: 'partials/partial1.html', controller: 'MyCtrl' });
控制器中获取查询字符串的值:
.controller('MyCtrl', ['$scope','$routeParams', function($scope,$stateParams, $state) { var param1 = $state.param1; var param1 = $state.param2; }]);
然而,这并不适用于配置中的路由提供程序。要处理查询字符串,需要在控制器中进行处理。