2017-07-14 82 views
0

如何從url中獲取查詢參數say,https://www.youtube.com/watch?v=Xnjw0SBKDM0使用angular 2?我知道如何從ActivatedRoute方法獲得查詢參數,但我只需要傳遞一個字符串,而不是我當前的路由器路由。Angular 2從網址查詢參數,不在地址欄中

+0

你的意思是你想得到「watch」參數的值嗎? – Steveadoo

+0

是的,但一般來說,如果我有5個參數,我怎樣才能得到這些關鍵值對的字典? –

+0

我不認爲Angular具有用於將用戶定義的字符串解析爲參數的本機功能。您可能需要手動將網址分割爲'?','&'和'=' – Kai

回答

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; 
} 
+1

我需要從字符串中獲取Params,而不是我激活的路由 –

+0

哦。這並不是特定的角度。儘管我可以更新我的答案。 – Steveadoo

+0

好的,非常感謝 –