使用 html5mode 解析Angular 中没有的查询字符串的最佳方法是什么? (不使用html5mode,因为我们需要支持旧浏览器)
无论是否使用哈希,我都会得到相同的未定义结果:
http://localhost/test?param1=abc¶m2=def
http://localhost/test#/param1=abc¶m2=def
$ routeParams和$ location.search()都返回undefined:
var app = angular.module('plunker', ["ngRoute"]);
app.controller('MainCtrl', ["$scope", "$routeParams", "$location",
function($scope, $routeParams, $location) {
console.log($routeParams, $routeParams.abc); //undefined, undefined
console.log($location.search(), $location.search().abc); //undefined, undefined
}]);
我可以自己解析window.location.search,但我希望在Angular中有更好的方法。
Plnkr:http://plnkr.co/edit/alBGFAkfqncVyK7iv8Ia?p=preview
我已阅读this post但尚未找到解决方案。我肯定错过了什么。谢谢你的帮助。
答案 0 :(得分:32)
查询参数应该在哈希之后:
http://localhost/test#/?param1=abc¶m2=def
这应该允许$location.search()
返回如下对象:
{
param1: 'abc',
param2: 'def'
}