2014-04-05 35 views
4

我有一個這樣的網址:角JS - 此網址查詢參數時,URL有#哈希

site.co/asd#antani?id=9 

我如何從這個URL獲得id值動態,並獲得新的價值時,它的變化?

我tryed:

console.log($routeParams);和我在控制檯得到了Object {}

感謝

+0

爲antani .. – StarsSky

+0

@StarsSky笑你知道它+1:d – sbaaaang

+0

你嘗試'$ location.search()'。它應該返回'{id:9}' –

回答

2

OK,我想我固定它,它是改變URL

所以make $routeParams作品我需要撥打

site.com/asd?id=9#antani 

代替

site.co/asd#antani?id=9 

希望它可以幫助另外,如果我不喜歡這種方式,網址:d

大感謝大家,如果您有任何更好的解決方案,讓我知道請!

+1

對,這是一個適當的形式 –

+0

是的,我不喜歡它看起來如何網址,但是我認爲唯一正確的方式 – sbaaaang

0
var myURL = "site.co/asd#antani?id=9"; 
var myURL_id = myURL.split("#")[1]; 
+0

謝謝..嗯,這很基本,我可以解析它肯定,我只想知道是否在那裏有一些角度指定的方法或方式:P – sbaaaang

0

假設這是實際的頁面你是,你可以使用角度$routeParams。這樣的事情:

var id = $routeParams.id 
+0

對不起,我忘了說我已經嘗試routeParams,但它總是返回空對象{}在控制檯:(我更新我的問題 – sbaaaang

+0

嗯...是你將它注入到控制器或服務中?$ routeParams變量在控制檯的全局範圍中不存在,與任何其他角度服務一樣,你需要使用依賴注入(http://docs.angularjs。org/guide/di) – alexsanford1

+0

yeah'注入$ location和$ routeParams,但是如果我需要一些嵌套注入,我會避免它,我認爲無論如何謝謝:) – sbaaaang

2

因爲我不知道你的完整環境。我會去這個dirtection:

var s = $location.search('site.co/asd#antani?id=9'); 

console.log(s.$$search); 

輸出:

Object {site.co/asd#antani?id: "9"} 

希望這將有助於,

+0

這是相當不錯的解決方案,但它將我重定向到奇怪的網址,就像在循環中我不知道爲什麼:(也是這樣?)被瀏覽器重新編碼或角向%3F,我無法得到爲什麼ufff :( – sbaaaang

1

有一個要點做到這一點,在使用參數的URL其他有用功能(網址參數爲對象,測試是否URL有參數,可以讓哈希沒有參數,可以和更改網址參數)

https://gist.github.com/dazzer13/10470514

你可以這樣做:

var params = urlGetParams(url);

params.id //返回9