微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

dojo/Memory模块隐含bugdojo1.8.0

dojo store API规定query方法的第二参数可以传递一个对象,该对象包含如下属性,start(记录的开始位置)、count(从开始位置获取多少条数据)、sort(排序规则)。

假设一个Memory实例mstore中有300条数据,执行如下语句:

1、mstore.query( { },{ start : 0,count : "10" } ); //返回前十条记录

2、mstore.query( { },{ start : 10,count : "10" } ); //返回从数组中下标从10开始到数组结尾的所有数据。

原因如下,大家一看便知:

results = results.slice(options.start || 0,(options.start || 0) + (options.count || Infinity)); //(dojo源码)

这是个陷阱大家注意。

罗嗦两句:

1、第二条语句返回从10开始到数组结尾的所有数据的原因为整数加字符串返回的是一个字符串,本例中为1010。即相当于执行results.slice(10,"1010"); 由于总数据只有三百条所以返回了所有数据。

2、在使用的时候大家记住别传字符串就行了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐