动态$ stateProvider URL

时间:2014-07-21 17:10:49

标签: angularjs angular-ui-router

我有一个简单的Web应用程序,它只是一个显示数据的表。您可以对表格应用搜索和过滤器,并更新URL,以便其他人可以访问网站并以相同的方式查看数据。过滤效果很好,但我对如何实施搜索感到有点迷失。

表的数据完全是动态的,所以我不知道会有多少列/行或它们将是什么。您可以单独或一起搜索每个列。

由于存在动态数量的列,因此我无法为每个列创建$stateParam。搜索所有列都存储在一个对象中,其中键作为列名称,列的搜索值作为键的相应值。

这是一个示例搜索对象:

var search = {column1:'searchvalue1',column2:'searchval2'...etc}

我想做类似的事情:

        $stateProvider.state("filter", {
            url: '/column/:column/search/{search}?column1&column2/',
            parent: 'parentState',
            controller: 'Ctrl'
        });

但由于列是动态的,我希望能够传递搜索对象,因此键是column1或column2,值是后面的=。有没有办法做到这一点?我找不到任何示例/文档。

1 个答案:

答案 0 :(得分:1)

不,您无法传递任意状态参数列表。 $stateParams只会包含州定义中列出的参数。

您很可能只想将对象作为JSON字符串传递。您可以使用JavaScript函数:encodeURIComponent()decodeURIComponent()