【问题标题】:Angularjs $location.search with duplicate parameters带有重复参数的Angularjs $location.search
【发布时间】:2018-09-11 10:46:50
【问题描述】:

我有一个这样的网址:

myappl/services=1&services=5&services=4 等等...

我需要创建一个包含服务值的数组

我试试

$scope.checkservices =  [$location.search().services].map(Number); }

但它只有在只有 1 个 services 参数时才有效。

如何循环我的服务参数?

【问题讨论】:

  • Object.keys($location.search()).map(( c, i, o) => o[c]) 应该这样做。

标签: javascript arrays angularjs


【解决方案1】:

在 angularJS 中,您可以使用$location 模块来获取参数值。下面是代码sn-p。

angular.module('app-name').controller('controller', ['$location',function($location){
    var key_value = $location.search();
    console.log(Object.values(key_value))
}])

上面的代码将为您提供对象中的参数值,例如根据您的 url key_value 这里将是

key_value = {
  services1: "1",
  services2: "5",
  services3: "4"
}

【讨论】:

  • 不会只给你key_value = { services: 4 } 吗?
  • @AdityaParab 不,不会的。
  • 谢谢。比我想象的要容易
  • @frwebdev 我希望services=1&services=5&services=4 不仅是服务,还有不同的参数名称。我说的对吗?
  • @Lokesh 是的,我还有其他参数,但是当我有对象时,我可以轻松处理它
【解决方案2】:

我不认为接受的答案是最好或正确的答案。只需在您的控制器、指令或其他内容中包含$routeParams

var params = $routeParams.services;

params 将是["1", "5", "4"],即具有服务值的数组...

如果你有上面的示例路径myappl/services=1&services=5&services=4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-08
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 2021-10-26
    相关资源
    最近更新 更多