read
API 等待选项映射 作为第二个参数,我们可以在其中使用属性 urlParameters
: 定义任何查询
oModel1.read("/LinesSet", {
urlParameters: {
"$expand": "ToCells",
"$select": "LineID,ToCells/CellID,...", // reduce data load
},
filters: [ // Filter required from sap/ui/model/Filter
new Filter({/*...*/}), // reduce data load
],
success: this.onSuccess.bind(this),
// ...
});
⚠️ 请注意,加载大量数据会对内存消耗和用户体验产生负面影响。这甚至可能最终导致应用程序完全崩溃。请参阅文档中的加载大量数据部分。
每当您在应用程序代码中使用 [...]
[...] 等方法时,您的应用程序不得加载大量数据。sap.ui.model.odata.v2.ODataModel#read
⚠️
read
从应用程序的角度来看是一个低级 API。还有其他 API 和方法可以帮助减少金额控制器代码。
我想强调的是,
v2.ODataModel#read
通常是不是必需的。您可以通过将 <NavigationProperty>
的相应名称分配给 XML 中的控件来简单地使用 OData Context/ListBinding:
<Table binding="{ToThatRelatedSingleEntity}" items="{ToThatRelatedCollection}" growing="true">
(注意: 您可能需要将
templateShareable
添加到聚合绑定中,如主题中所述:绑定模板的生命周期)
绑定(而不是应用程序)将自动为您准备请求。无需使用中间
JSONModel
。与 v4.ODataModel
相同,甚至没有 read
方法。感谢@boghyon-hoffmann! 替代解决方案看起来很棒! 它改变了思维方式。 我想知道我想添加到成功/错误可能性中的逻辑是什么?