我有一个用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来证明我的问题。
我做错了吗?
感谢。
答案 0 :(得分:1)
您将用户存储为数组,这就是您无法使用
的原因new Filter().contains('users', '15');
如果你想使用.contains而不是你必须这样使用它:
new Filter().contains('users', ['15']);
a.k.a你必须通过提供数组来检查,而不是字符串。