【发布时间】:2015-06-24 23:36:31
【问题描述】:
我有以下代码,其中我创建了一个商店并通过传递 name_holder 值在加载时对其进行查询。所以基本上查询是
/query/name:name_holder*
name_holder 值由用户输入。现在我试图检索返回的记录值,但我无法在 store.load 函数之外访问它。 我的方法是否正确?我是 ext.js 的新手,我们将不胜感激。谢谢。
var store = Ext.create("Ext.data.Store", {
fields: [
{name: 'name', type: 'string'},
{name: 'id', type: 'string'},
],
proxy : name_proxy,
});
var data_names= store.load({
params : {
query : name_holder
},
callback: function(records, operation, success) {
if (success) {
var data_id= records[0].data.id;
} else {
console.log('error');
}
}
});
console.log(data_id);
我可以在函数内部访问 data_id 值,但不能在外部访问。因此,console.log 行给了我一个错误。
【问题讨论】:
-
该函数的作用是检查记录是否符合过滤条件。过滤器完成后,商店将只有与过滤器匹配的东西。
-
使用
query: name_holder加载存储已经只返回匹配过滤条件的记录,那么为什么要过滤呢? -
@EvanTrimboli 有没有办法访问匹配的数据?
-
@DrakeES 它基本上是返回包含字符串的每条记录。我想将其过滤为仅具有完全 name_holder 的记录。
-
@pal 为什么要在服务器和客户端之间拆分过滤工作,让他们每个人只做一半?您不能只根据需要让服务器返回完全匹配吗?
标签: extjs extjs4 extjs-stores