在2.0rc1中添加带“And”和“or”的过滤器

时间:2013-10-18 09:14:58

标签: rally

我在使用带有“And”和“or”子句的过滤器时遇到问题。基本上我想让任何用户都有“移动”或“测试”文本

我这样想:

                    _createFilters:function(){
                    var filter = Ext.create('Rally.data.QueryFilter',
                    {
                        property: 'Name',
                        operator: 'contains',
                        value: 'Mobile'
                    }
                );

                    filter = filter.or(Ext.create('Rally.data.QueryFilter',
                    {
                        property: 'Name',
                        operator: 'contains',
                        value: 'Testing'
                    }));

                    return filter.toString();

                },
                _makeDefectsStore:function(ref){
                    Ext.create('Rally.data.WsapiDataStore',{  // will fetch userstories that have defects
                        model: 'User Story',
                        limit: "Infinity",
                        context: {
                            project :'/project/xxxx',
                            projectScopeUp: false,
                            projectScopeDown: true
                        },
                        autoLoad: true,
                        fetch:['FormattedID','Name','Defects','Feature'],
                       filters: [this._createFilters()],
                       scope:this,
                        listeners: {
                            load: this._onAllDefectsLoaded,
                            scope: this
                        }
                    });
                }

此处过滤器返回null,否则返回所有用户文件而不进行过滤。请提供建议/修复

1 个答案:

答案 0 :(得分:1)

没有任何东西立即弹出,因为你的过滤器结构不正确,你可以尝试这个更简单的版本,看看你得到了什么:

Ext.create('Rally.data.WsapiDataStore', {
    model   : 'UserStory',
    filters : Rally.data.QueryFilter.or([{
        property : 'Name',
        operator : 'contains',
        value    : 'Testing'
    },{
        property : 'Name',
        operator : 'contains',
        value    : 'Mobile'
    }])
});