有没有办法在angular.js中确定是否存在url查询参数?

时间:2015-01-16 22:10:21

标签: javascript angularjs

在angular route中,您可以将url参数解析为$ routeParams。但是,我需要知道什么是查看它们是否存在的最佳方式。

例如,我从URL的不同部分有几个$routeParams但是,我想知道的是是否存在任何url参数(如果?存在和参数之后)。我明白了,我可以只搜索一下?但想知道是否有一种角度内的方式。

这是我的代码:

 $routeProvider.when('/sports/:sport_id/:args?', 

sport_id和所有的args将合并在$ routeParams中。但是我只是想知道args是否存在。 (查询参数)

1 个答案:

答案 0 :(得分:7)

您可以注入$routeParams并查找对象中是否存在任何属性。

ex:var hasParams = Boolean(Object.keys($routeParams).length);

你不需要Boolean(部分因为0无论如何都是假的,但只是更明确。

如果仅查找查询字符串params,您可以注入$location服务并使用$location.search(),它将为对象提供查询字符串参数作为对象上的键值对。