$ stateParams的易失数量

时间:2014-07-22 20:45:23

标签: angularjs angular-ui-router

我有一个表格可以显示您可以搜索的数据。它有多个列,但我不知道它们将提前包含多少或哪些内容。

搜索存储在如下对象中:

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,但问题是,您必须在应用配置中提前定义,并且我不知道有多少列,或者他们是什么名字是。有谁知道如何做到这一点,和/或有更好的解决方案?

所有意见/评论都有帮助!

1 个答案:

答案 0 :(得分:0)

我认为您最好的选择是使用已知参数,例如search并且其值为搜索参数的序列化。

您的状态配置如下所示:

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

并且您将使用$stateParams.search来检索序列化参数。