过滤器不适用于特定工作区拉力赛

filters not working on specific workspace rally

我有两个工作区 当我将我的应用程序加载到一个工作区时,它可以使用过滤器,但是当我使用相同的代码时,它不起作用。 然后我尝试注释掉过滤器然后它给了我完整的记录。无法弄清楚有什么区别, 我正在使用拉力赛 sdk2.0rc3 下面是我的代码片段

this._startDate 值为 2014-09-10

this._endDate 值为 2015-03-03

并且当我打印操作时它给出 false

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);

我的第一个猜测是,如果相同的代码在一个工作区中工作而在另一个工作区中不起作用,并且罪魁祸首是基于日期值的过滤器,请检查您的工作区是否具有不同的日期格式。例如像这样:

或者像这样:

但我在使用 mm/dd/yyyy 格式的工作区中测试了“2015-02-06”值并且它有效。

无论如何,如果它在一个工作区中工作而在另一个工作区中不工作,这很可能不是代码的问题,而是数据的问题。也许在第二个工作区中,相同的查询 returns 0 结果。此外,根据代码中使用的日期的含义,可以避免硬编码日期。例如,要获取当前迭代,请尝试以下操作:

var today = new Date().toISOString();
filters: [
                {
                    property: 'StartDate',
                    operator: '<=',
                    value: today
                },
                {
                    property: 'EndDate',
                    operator: '>=',
                    value: today
                }
            ]