2014-07-22 31 views
0

我有一個表格顯示您可以搜索的數據。它有多個列,但我不知道它們會提前包含多少或什麼內容。

的搜索存儲在一個對象像這樣:

var search = {columnName:'searchInColumnName',...,otherColumn:'otherSearch'}; 

我有一個簡單的狀態配置,其餘利用用於保持過濾+搜索。過濾部分工作,我只是想添加搜索。

app.config(['$stateProvider', '$urlRouterProvider', 
    function ($stateProvider, $urlRouterProvider) { 

     $stateProvider.state('parentState', { 
      url: '', 
      abstract: true 
     }); 

     $stateProvider.state('filter', { 
      url: '/column/:column/desc/:sort/', 
      parent: 'parentState', 
      controller: 'Ctrl' 
     }); 

    } 
]); 

我想我可以追加/search/?columnName=searchValue,但問題是,你必須定義在應用程序配置這個時間提前,我不知道有多少列有,或他們的名字。有誰知道如何做到這一點,和/或有更好的解決方案?

所有意見/評論都很有幫助!

回答

0

我認爲你最好的選擇是使用一個已知的參數,例如search並且具有這個值是搜索參數的序列化。

你的狀態配置是這樣的:

.state('filter?search', { 
    /* same as above */ 
}); 

,你會使用$stateParams.search檢索序列化的參數。