2014-07-22 37 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检索序列化的参数。