如何使用 contains 方法过滤 dstore?
How can I filter a dstore using the contains method?
我有一个 dgrid,其中填充了一个 dstore 普通旧内存集合,我正在尝试使用 'contains' 过滤方法进行过滤。商店数据如下所示:
[
{id:"25", users: ["13", "15"]},
{id:"347", users: ["13"]},
{id:"653", "users":["13", "17"]}
]
我想检索给定用户在用户数组中的所有记录。根据我的理解,我希望能够设置一个像 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 演示我的问题。
我是不是做错了什么?
谢谢。
您将用户存储为数组,这就是为什么您不能使用
new Filter().contains('users', '15');
如果你想使用 .contains,你将不得不像这样使用它:
new Filter().contains('users', ['15']);
a.k.a 您必须通过提供数组而不是字符串来进行检查。
我有一个 dgrid,其中填充了一个 dstore 普通旧内存集合,我正在尝试使用 'contains' 过滤方法进行过滤。商店数据如下所示:
[
{id:"25", users: ["13", "15"]},
{id:"347", users: ["13"]},
{id:"653", "users":["13", "17"]}
]
我想检索给定用户在用户数组中的所有记录。根据我的理解,我希望能够设置一个像 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 演示我的问题。
我是不是做错了什么?
谢谢。
您将用户存储为数组,这就是为什么您不能使用
new Filter().contains('users', '15');
如果你想使用 .contains,你将不得不像这样使用它:
new Filter().contains('users', ['15']);
a.k.a 您必须通过提供数组而不是字符串来进行检查。