2016-03-03 75 views
2

我已經在Angular 1.5應用程序中使用ui-router獲得分頁視圖,這需要大量的搜索參數。角ui路由器ui-sref包括*所有*參數,不只是所需的

此視圖中的記錄有ui-sref鏈接,允許用戶通過特定參數篩選其搜索,如category

這些鏈接幾乎可以工作。問題在於它們生成的鏈接不僅包括我指定的參數category,還包括當前正在用於該視圖的所有其他參數:page等等。

例如:

當前URL:/index/?page=8&query=querytext

鏈接ui-srefui-sref="index({category: record.category})"

所需的鏈接URL:/index/?category=desiredCategory

鏈接URL它實際上會創建:/index/?page=8&query=querytext&category=desiredCategory

生成的URL不僅僅是不需要的,因爲它包含頁面參數,它甚至可能鏈接到一個甚至不存在的頁面。顯然,我可以爲這個視圖可能需要的每一種參數指定空參數,但是考慮到這個數字會很快變得笨重。

有沒有什麼辦法讓ui-router創建ui-sref鏈接,這些鏈接只能指向指定的參數,而不是當前正在使用的參數和所有其他參數?我已經試過指定的默認值在我的UI路由器狀態,但似乎並沒有工作:

.state('index', { 
    url: "/?page&query&category", 
    params: { 
     page: { 
      value: '1', 
      squash: true 
     }, 
     query: { 
      value: '', 
      squash: true 
     }, 
     category: { 
      value: '', 
      squash: true 
     }, 
    }, 
    templateUrl: "index.html", 
    controller: 'PostController' 
}) 

任何見解如何處理這將不勝感激!

回答

1

我找到了答案:要禁用ui-sref繼承所有當前視圖參數,必須在鏈接中添加第二個指令:ui-sref-opts="{inherit: false}"