javascript - 避免 View 中出现错误的请求

标签 javascript sapui5

我有一个 xml 文件,其中包含这样的列表

view.xml

<List
    id="myList"
    items="{
        path: '/myEntitySet'
    }">
    <items>
        <StandardListItem
            title="{myTitle}" />
    </items>
</List>

“myEntitySet”需要动态过滤器参数 (myId) 才能正常响应,否则我将从后端收到 404 错误。 所以我使用 JavaScript 将过滤器添加到我的列表中。

controller.js

var oBinding = this.getView().byId("myList").getBinding("items");
var aFilter = [ new sap.ui.model.Filter("myId", sap.ui.model.FilterOperator.EQ, myDynamicId ) ];

oBinding.filter({                      
            filters: aFilter
            });

问题: “View-Request”在“controller-Request”之前触发几毫秒,并且请求失败(404 错误)。 我不想通过 JS 渲染列表以避免来自 View 的请求。有没有办法阻止查看请求?

最佳答案

有几种方法可以做到这一点。

最简单的方法是直接在 XML 中进行过滤,但我假设您的动态过滤参数无法在设计时写入,因此该选项不适用。

您只能在 Controller 中进行绑定(bind)。因为您说过您不想在 JavaScript 中“渲染”列表,所以您可以使用以下代码片段。

查看:

<List id="myList">
    <dependents>
        <StandardListItem id="myItem" title="{myTitle}" />
    </dependents>
</List>

Controller :

this.byId("myList").bindItems("/myEntitySet", {
   template: this.byId("myItem"),
   //optional:
   templateShareable: true
});

另一种可能性是使用 OData 模型 (v2) 的延迟批处理组功能。基本上,您可以通过为批量请求提供 groupId 将请求分组到单个批量请求中。

如果您将此类组标记为延迟,则在调用 OData 模型的 submitChanges 方法时会提交该组(及其包含的请求)。查看 ODataListBinding 的文档和 ODataModel .

查看:

<List id="myList" items="{
    path: '/myEntitySet', 
    parameters: {batchGroupId: 'myGroup'}
}">
    <StandardListItem title="{myTitle}" />
</List>

Controller :

//in onInit
this.getModel().getDeferredGroups(["myGroup"]);

//after you added the filter
this.getModel().submitChanges();

关于javascript - 避免 View 中出现错误的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43540822/

相关文章:

javascript - PeerJS:iceConnectionState 已断开连接,正在关闭与 [userid] 的连接

javascript - 如何自动将用户分配到日历中的下一个可用时间段?

sapui5 - 以 "sap.ui.define"风格编写 SAPUI5 控件渲染器

javascript - SAPUI5 VIZ 柱形图集成。无效的数据绑定(bind)错误

javascript - 动态添加 Tiles 到 TileContainer

javascript - 更改事件后未调用函数

javascript - 从 javascript 调用组合准备好(边缘动画)

javascript - 如何创建粘性导航栏 css 和 javascript

javascript - 从 json 对象中的多个路径获取值列表

javascript - Sapui5 中的布局,带有表单和网格表