来自url的Angular 2查询参数,而不是地址栏中的参数

时间:2017-07-14 18:06:37

标签: angular url

如何使用角度2从网址https://www.youtube.com/watch?v=Xnjw0SBKDM0获取查询参数?我知道如何从ActivatedRoute方法获取查询参数,但我只需要传递一个字符串,而不是我当前的路由器路由。

1 个答案:

答案 0 :(得分:0)

看看this answer。这是您需要的方法。

function getJsonFromUrl(hashBased) {
  var query;
  if(hashBased) {
    var pos = location.href.indexOf("?");
    if(pos==-1) return [];
    query = location.href.substr(pos+1);
  } else {
    query = location.search.substr(1);
  }
  var result = {};
  query.split("&").forEach(function(part) {
    if(!part) return;
    part = part.split("+").join(" "); // replace every + with space, regexp-free version
    var eq = part.indexOf("=");
    var key = eq>-1 ? part.substr(0,eq) : part;
    var val = eq>-1 ? decodeURIComponent(part.substr(eq+1)) : "";
    var from = key.indexOf("[");
    if(from==-1) result[decodeURIComponent(key)] = val;
    else {
      var to = key.indexOf("]",from);
      var index = decodeURIComponent(key.substring(from+1,to));
      key = decodeURIComponent(key.substring(0,from));
      if(!result[key]) result[key] = [];
      if(!index) result[key].push(val);
      else result[key][index] = val;
    }
  });
  return result;
}