2016-02-18 61 views
0

我正在使用角度ui路由器來尋找我的頁面,並且我有一個具有幾個不同查詢參數的路由。問題是,當我使用不同的查詢參數切換同一頁面的路由時,任何現有參數都會保留。當切換到相同的路由時清除現有的角度ui路由器查詢參數

所以,如果我在URL localhost:8080/myapp/#/myPath?barId=098我用下面的項目我的網址localhost:8080/myapp/#/myPath?barId=098&fooId=123而不是localhost:8080/myapp/#/myPath?fooId=123

我已經試過最終使用ui-sref="myPath({fooId:123}"$state.go("myPath", {fooId:123})之一,但他們都產生相同的行爲。有沒有辦法刪除現有的參數?

這裏的狀態定義

.state('myPath', { 
    url: '/myPath?fooId&barId&fluffyId&anotherId', 
    templateUrl: 'foo.html', 
    controller: MyController 
}) 
+0

什麼是「myPath」?如果你像這樣添加重新加載會發生什麼:$ state.go(「foo」,{fooId:123},{reload:true}); – BBauer42

+0

更改名稱時發生錯誤。 myPath應該是路徑,只是錯誤地把foo放在那裏。 'reload:true'沒有什麼區別 – Zipper

回答

1

ui的路由器SREF選項默認繼承爲true。我認爲你需要將其設置爲false,像這樣:

$state.go("myPath", {fooId:123}, {inherit: false}) 

或者在這樣的觀點:

ui-sref="myPath({fooId:123}" ui-sref-opts="{reload: true, inherit: false}" 

你可以閱讀在這裏documentation for ui-router的UI-S REF-OPTS。

+0

謝謝,繼承:true工作。 – Zipper

+0

@ Zipper你的意思是繼承:false工作正確嗎? – BBauer42

+0

是的,對不起,打字速度比我想象的要快。 – Zipper