2014-07-15 33 views
1

我有角的UI路由器的狀態:如何獲得沒有參數的狀態URL?

.state('example', { 
    url: '/example?foo&bar', 
    templateUrl: '/partials/example.html', 
    controller: 'ExampleController' 
}) 

ExampleController,我做的:

console.log($state.href('example', {}, {inherit: false})); 

然後我轉到我的應用程序/example?foo=1&bar=2
我希望我的控制器將記錄只是/例如(用於日後建立規範的網址)
但它隨時登錄的正是當前狀態/example?foo=1&bar=2

我在做什麼錯了?
謝謝

回答

0

ui-router有2個inforamtion,我們可以用於日誌記錄。

  • $state名稱(在我們的情況下, '示例')
  • URL串,表示1)州名+ 2)PARAM名稱圖案('/例如?foo & bar'在我們的例子中)

這就是它 - 沒有任何分離的信息:沒有PARAMS 狀態網址...

這裏是an example顯示什麼狀態不包含。因此,讓我們甚至擴展與ID參數上面的狀態:

.state('example2', { 
    url: '/example2/:id?foo&bar', 
    templateUrl: '/partials/example.html', 
    controller: 'ExampleController', 
}) 

,如果我們觀察到這樣的當前狀態<a ui-sref="example2({id: 222, foo:2,bar:4})">,我們可以看到:

{ 
    "params": { 
    "id": "222", 
    "foo": "2", 
    "bar": "4" 
    }, 
    "current": { 
    "url": "/example2/:id?foo&bar", 
    "templateUrl": "/partials/example.html", 
    "controller": "ExampleController", 
    "name": "example2" 
    }, 
    "transition": null 
} 

所以,我建議:如果你需要洛只是一個國家..使用$state.current.name

+0

我有更新我的問題,問題是我需要一個「規範的URL」。 – nvcnvn

+0

我想說,這是從UI路由器URL處理不同。甚至可能有像'/ state1 /:param/state2'這樣的部分......然後沒有參數的部分就沒有意義了。換句話說,我會建議記錄狀態名稱,它不依賴於url *(可能不是爲抽象狀態設置的),也不會被params弄髒......只是一個建議;) –

+0

ahh,I明白,tks你! – nvcnvn

相關問題