我在使用带有“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,否则返回所有用户文件而不进行过滤。请提供建议/修复
答案 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'
}])
});