使用SnapshotStore时,我无法保存作为查询一部分返回的对象的“Name”属性。我得到了项目的正确OID,但我想显示项目的字符串名称而不是OID。我怎么能这样做?
这是我用来查询的代码,但是当我将“Project”属性添加到Hydrate字段时,它似乎并不重要。如果我完全注释掉水合物系列,那么状态和分辨率会回复为未水合且不可读(大多数人都不知道),所以我知道它至少有效。
doSearch: function(query, fields, sort, pageSize, callback){
var transformStore = Ext.create('Rally.data.lookback.SnapshotStore', {
context: {
workspace: this.context.getWorkspace(),
project: this.context.getProject()
},
fetch: fields,
find: query,
autoLoad: true,
hydrate: ["State","Resolution","Project"],
listeners: {
scope: this,
load: this.processSnapshots
}
});
},
“我们无法找到以下用户友好的表格:'项目':7579240995” - 是我在水合物领域中包含“项目”时得到的。
我在某处读到水合物只适用于下拉菜单。那是对的吗?如果是这样,我将如何轻松地为查询返回的每个对象显示项目名称?
答案 0 :(得分:1)
不幸的是,Project不是一个富水的领域。一般来说,可以水合的字段是您在问题中提到的下拉字段。
执行所需操作的最佳方法是使用Rally.data.WsapiDataStore查询当前工作空间中的项目,并构建要命名的OID的内存映射。
var projects = {};
Ext.create('Rally.data.WsapiDataStore', {
model: 'Project',
autoLoad: true,
limit: Infinity,
fetch: ['Name', 'ObjectID'],
context: this.getContext().getDataContext(),
listeners: {
load: function(store, records) {
Ext.Array.each(records, function(record) {
projects[record.get('ObjectID')] = record.get('Name');
});
}
}
});