如何使用contains方法过滤dstore?

时间:2016-04-28 03:58:43

标签: dojo dstore

我有一个用dstore普通旧内存集合填充的dgrid,我试图使用'contains'过滤器方法进行过滤。商店数据如下所示:

[
    {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来证明我的问题。

我做错了吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您将用户存储为数组,这就是您无法使用

的原因
new Filter().contains('users', '15');

如果你想使用.contains而不是你必须这样使用它:

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

a.k.a你必须通过提供数组来检查,而不是字符串。