我有一个简单的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,值是后面的=。有没有办法做到这一点?我找不到任何示例/文档。
答案 0 :(得分:1)
不,您无法传递任意状态参数列表。 $stateParams
只会包含州定义中列出的参数。
您很可能只想将对象作为JSON字符串传递。您可以使用JavaScript函数:encodeURIComponent()
和decodeURIComponent()