2

我有一个填充了 dstore 普通旧内存集合的 dgrid,我正在尝试使用“包含”过滤器方法对其进行过滤。商店数据如下所示:

[
    {id:"25", users: ["13", "15"]},
    {id:"347", users: ["13"]},
    {id:"653", "users":["13", "17"]}
]

我想检索给定用户在 users 数组中的所有记录。据我了解,我希望能够设置一个过滤器new Filter().contains('users', '15');,并将其设置为网格的集合,在此示例中留下一行(id = '25')。但是,我剩下 0 行。我还尝试为过滤器提供正则表达式,而不仅仅是值匹配,new Filter().contains('users', new RegExp('^15$'));但是这不会过滤掉任何行。

我正在使用 dojo v1.10.4、dgrid v1.0.0 和 dstore v1.1.1。这是一个展示我的问题的JSFiddle 。

难道我做错了什么?

谢谢。

4

1 回答 1

1

您将用户存储为数组,这就是为什么您不能使用

new Filter().contains('users', '15');

如果您想使用 .contains ,则必须像这样使用它:

new Filter().contains('users', ['15']);

aka 你必须通过提供一个数组而不是一个字符串来检查。

于 2016-04-28T04:14:41.693 回答