2015-02-06 25 views
1

我有两个工作区 当我在一个工作区加载我的应用程序时,它与过滤器一起工作,但是当我使用相同的代码时它不起作用。 然后我尝试评论过滤器,然后它给了我整个记录。不能图什么区别, 我使用拉力sdk2.0rc3下面 是我的代码片段过滤器无法在特定的工作区拉力赛

this._startDate2014-09-10

this._endDate2015-03-03

,当我打印操作它提供虚假

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

回答

1

我的第一个猜测是,如果相同的代码工作在一个工作空间和其他工作区不起作用,而罪魁祸首是基于日期值过滤,检查你的工作区有不同日期格式。例如是这样的:

enter image description here

或这样的:

enter image description here

但我在工作空间中测试 '2015年2月6日' 值,该值使用毫米/ dd/yyyy格式和有效。

在任何情况下,如果它在一个工作区中工作,并且在另一个机会中不起作用,这不是代码问题,而是数据问题。也许在第二个工作空间中,相同的查询返回0个结果。另外,根据代码中使用的日期的含义,可以避免硬编码日期。例如,要获得当前迭代试试这个:

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

感谢尼克,是的,我在我的日期使用了这个'toISOString()',它工作。非常感谢 – Sontya 2015-02-09 07:04:26