在 FIORI 中过滤模型导致 "f.forEach is not a function"
Filtering a model in FIORI leads to "f.forEach is not a function"
我正在尝试读取带有过滤器的模型:
var oFilter = new sap.ui.model.Filter({
filters: [
new sap.ui.model.Filter({
path: 'attr1',
operator: sap.ui.model.FilterOperator.EQ,
value1: value
}),
new sap.ui.model.Filter({
path: 'attr2',
operator: sap.ui.model.FilterOperator.EQ,
value1: value2
})
],
and: true
});
model.read("/pathToEntitySet",
{
success: function(oData, response) {
console.log("i am here");
},
error: function(oError){
console.log(oError);
},
filters: oFilter
}
);
但是,当我添加过滤器时总是得到 "f.forEach is not a function":oFilter 到 model.read 操作。
我正在使用 FF 68.5。
知道这个错误的来源吗?
filters
需要一个数组。您传递了一个对象。两个选项:
选项 A:删除包装纸
当应用具有不同路径的多个过滤器时,会自动假定 AND
。所以你可以简单地做
const aFilter = [
new sap.ui.model.Filter({
path: 'attr1',
operator: sap.ui.model.FilterOperator.EQ,
value1: value
}),
new sap.ui.model.Filter({
path: 'attr2',
operator: sap.ui.model.FilterOperator.EQ,
value1: value2
})
];
model.read("/pathToEntitySet", {
success: ...
error: ...
filters: aFilter
});
选项 B:添加另一个包装器
保持你的过滤器不变,在将它传递给 filters
:
时将 oFilter
括起来
model.read("/pathToEntitySet", {
success: ...
error: ...
filters: [oFilter]
});
我正在尝试读取带有过滤器的模型:
var oFilter = new sap.ui.model.Filter({
filters: [
new sap.ui.model.Filter({
path: 'attr1',
operator: sap.ui.model.FilterOperator.EQ,
value1: value
}),
new sap.ui.model.Filter({
path: 'attr2',
operator: sap.ui.model.FilterOperator.EQ,
value1: value2
})
],
and: true
});
model.read("/pathToEntitySet",
{
success: function(oData, response) {
console.log("i am here");
},
error: function(oError){
console.log(oError);
},
filters: oFilter
}
);
但是,当我添加过滤器时总是得到 "f.forEach is not a function":oFilter 到 model.read 操作。
我正在使用 FF 68.5。
知道这个错误的来源吗?
filters
需要一个数组。您传递了一个对象。两个选项:
选项 A:删除包装纸
当应用具有不同路径的多个过滤器时,会自动假定 AND
。所以你可以简单地做
const aFilter = [
new sap.ui.model.Filter({
path: 'attr1',
operator: sap.ui.model.FilterOperator.EQ,
value1: value
}),
new sap.ui.model.Filter({
path: 'attr2',
operator: sap.ui.model.FilterOperator.EQ,
value1: value2
})
];
model.read("/pathToEntitySet", {
success: ...
error: ...
filters: aFilter
});
选项 B:添加另一个包装器
保持你的过滤器不变,在将它传递给 filters
:
oFilter
括起来
model.read("/pathToEntitySet", {
success: ...
error: ...
filters: [oFilter]
});