Rally 2.1 SDK:如何按迭代区间筛选用户故事?
解决Rally用户故事迭代区间筛选的过滤器组合问题
我来帮你搞定这个过滤器组合的问题!你遇到的错误主要来自两个细节:过滤器类型不统一和变量重复定义,咱们一步步修正:
问题分析
- 过滤器类型混用:你同时创建了
Rally.data.QueryFilter和Rally.data.wsapi.Filter两种类型的过滤器,而Rally的wsapi.Store只兼容wsapi.Filter类型,混用会导致组合逻辑失效。 - 变量重复赋值:代码里两次声明
var UserStoryFilter,第二次赋值会直接覆盖第一次的结果,这也会干扰过滤器的正确组合。
修正后的完整代码
// 统一使用wsapi.Filter创建两个区间过滤器 var StartDateFilter = Ext.create('Rally.data.wsapi.Filter', { property: 'Iteration', operator: '>=', value: StartIteration }); var EndDateFilter = Ext.create('Rally.data.wsapi.Filter', { property: 'Iteration', operator: '<=', value: EndIteration }); // 正确组合两个过滤器,避免重复定义变量 var UserStoryFilter = StartDateFilter.and(EndDateFilter); this.defectStore = Ext.create('Rally.data.wsapi.Store', { model: 'User Story', autoLoad: true, pageSize: 1000, filters: UserStoryFilter, listeners: { load: function(myStore, myData) { console.log(myData); }, scope: this }, fetch: ['CreationDate','FormattedID', 'Name', 'PlanEstimate', 'Feature', 'PortfolioItem', 'Milestones','Parent','Children'] });
关键修正点说明
- 把起始迭代过滤器也改成
Rally.data.wsapi.Filter,保证和结束过滤器类型一致,这样.and()方法才能正确组合逻辑 - 删除了重复的变量赋值语句,避免过滤器组合结果被覆盖
- 确保组合后的过滤器正确传递给Store的
filters配置项
这样修改后,你的Store就能正确筛选出StartIteration到EndIteration区间内的所有用户故事了。
内容的提问来源于stack exchange,提问作者Caleb Fatt
相关产品推荐
相关产品推荐

