我有两个工作区
当我在一个工作区上加载我的应用程序时,它可以使用过滤器,但是当我使用相同的代码时它不起作用。
然后我尝试评论过滤器,然后它给了我整个记录。无法确定其中的区别,
我正在使用Rally sdk2.0rc3
下面是我的代码片段
this._startDate
值为2014-09-10
this._endDate
值为2015-03-03
当我打印操作时,它会给出错误的
和iterations = []
@nickm帮帮我
_onDataLoaded: function() {
console.log("this.getContext().getProject()._ref", this.getContext().getProject()._ref);
console.log("this._startDate", this._startDate);
console.log("this._endDate", this._endDate);
var project_oid = this.getContext().getProject()._ref;
var startDateFilter = Ext.create('Rally.data.QueryFilter', {
property: 'StartDate',
operator: '>',
value: this._startDate
});
startDateFilter = startDateFilter.and({
property: 'StartDate',
operator: '<',
value: this._endDate
});
startDateFilter = startDateFilter.and({
property: 'StartDate',
operator: '!=',
value: null
});
var endDateFilter = Ext.create('Rally.data.QueryFilter', {
property: 'EndDate',
operator: '<',
value: this._endDate
});
endDateFilter = endDateFilter.and({
property: 'EndDate',
operator: '>',
value: this._startDate
});
endDateFilter = endDateFilter.and({
property: 'EndDate',
operator: '!=',
value: null
});
var filter = startDateFilter.or(endDateFilter);
//filter.toString();
Ext.create('Rally.data.WsapiDataStore', {
model: 'Iteration',
limit: Infinity,
context: {
project: project_oid,
projectScopeDown: true,
projectScopeUp: false
},
fetch: ['Name','Project', 'StartDate', 'EndDate', 'Parent', 'Children'],
autoLoad: true,
filters: [
filter
],
listeners: {
load: this._loadGrid,
scope:this
}
}, this);
},
_loadGrid: function(store, iterations, operation) {
console.log("hi there", operation);
答案 0 :(得分:1)
我的第一个猜测是,如果相同的代码在一个工作区中工作而在另一个工作区中不起作用,并且罪魁祸首是基于日期值的过滤器,请检查您的工作区是否具有不同的日期格式。例如:
或者像这样:
但我测试了2015-02-06&#39;使用mm / dd / yyyy格式的工作空间中的值,并且它起作用。
在任何情况下,如果它在一个工作区中工作而在另一个工作区中不起作用,则这不是代码问题,而是数据问题。也许在第二个工作区中,相同的查询返回0结果。此外,根据代码中使用的日期的含义,可以避免硬编码日期。例如,要获得当前迭代,请尝试以下操作:
var today = new Date().toISOString();
filters: [
{
property: 'StartDate',
operator: '<=',
value: today
},
{
property: 'EndDate',
operator: '>=',
value: today
}
]