多个JsonReaders读取JsonStore数据的不同部分

说我有一个像这样的json字符串: 码:
{"Staff":[{"id":1,"name":"John"},{"id":2,"name":"Mary"},{"id":3,"name":"Sandra"}],"Students":[{"id":2,"name":"Peter"},{"id":3,"name":"Carl"},{"id":4,"name":"Hodges"}]}
(注意:如果你想看到更好的格式化json字符串,请将其粘贴到http://json.parser.online.fr/) 我有两个组合框cmbStaff和cmbStudents。是否有可能将两个comobox绑定到同一个商店但有不同的jsonreaders?即cmbStaff的datareader将使用root读取字符串:'Staff'和cmbStudent将读取根'Students'的字符串? 这是为了节省商店制作的AJAX数量,并为每个comboBox设置不同的商店(想象一下,如果我的表单有20个组合框!)。 有任何想法吗?如果您需要更多信息,请随时通知我,谢谢!     
已邀请:
我不是百分之百,但我很确定最佳实践是每个组合框一个商店。如果您必须制作20个小型AJAX请求来制作表单,则需要提出20个请求。这真的不是那么多数据。从长远来看,它会让你的应用程序更容易维护,因为你不会有一些超级请求,它拥有来自一堆组合框的所有这些无关数据。     
加载操作后,商店中只有一组记录;你不会得到你想做的事情。 我会用两个独立的商店。一个配置为加载,例如,学生,另一个配置为使用loadData函数加载人员,使用在收到load事件时检索到的第一个json。     
正如其他人所说,你需要每个组合框一个商店。 如果您有相当静态的数据,请将它们作为Json抓取一次,并将其粘贴到某个全局数组中。为每个组合使用简单的ArrayStore,以避免一直返回服务器。 如果数据是易失性的,那么你将不得不一遍又一遍地获取它们,所以你也可以只使用两个单独的JsonStore,JsonReaders使用相同的脚本来处理服务器数据。     
你可以有两个不同的JsonReaders。只需手动切换它们(即使用组合框的事件)。     
基本规则是这样的: 相同的基础数据集但需要显示不同的列?使用相同的商店是可以的(只需将组合框指向需要的字段)。 不同的底层数据集(所需字段之间没有关系)?应该使用不同的商店。     

要回复问题请先登录注册