SAPUI5 ODataModel attachRequestCompleted函数将自动调用两次

SAPUI5 ODataModel attachRequestCompleted函数将自动调用两次,sapui5,Sapui5,如何防止oModelDetailData.attachRequestCompleted函数自动执行两次,我在代码中到处使用了调试器,但找不到任何东西,因此updateTZ()也会被调用两次。模型的countMode是否设置为“Request”?此模式触发第二个单独的请求。 您可以尝试将其设置为“Inline”,以便数据和计数在同一请求中。 或者,您可以在触发回调后立即分离请求完成事件 编辑 您还可以使用attachEventOnce(sEventId、oData?、fnFunction、oLis

如何防止oModelDetailData.attachRequestCompleted函数自动执行两次,我在代码中到处使用了调试器,但找不到任何东西,因此updateTZ()也会被调用两次。

模型的countMode是否设置为“Request”?此模式触发第二个单独的请求。 您可以尝试将其设置为“Inline”,以便数据和计数在同一请求中。 或者,您可以在触发回调后立即分离请求完成事件

编辑


您还可以使用attachEventOnce(sEventId、oData?、fnFunction、oListener?)方法。您可以在API参考中找到更多信息

您的模型的计数模式是否设置为“请求”模式?此模式触发第二个单独的请求。 您可以尝试将其设置为“Inline”,以便数据和计数在同一请求中。 或者,您可以在触发回调后立即分离请求完成事件

编辑

您还可以使用attachEventOnce(sEventId、oData?、fnFunction、oListener?)方法。您可以在API参考中找到更多信息

oModelDetailData.attachRequestCompleted(function()
{
    var rowsCount =oModelDetailData.oData.getElementsByTagName("Row").length;
    oPassedFields=["C_INCIDENT_DATE_TIME","R_INCIDENT_DATE_TIME"];
    debugger;
    console.log(oModelDetailData);
    console.log(oPassedFields);
    updateTZ(oModelDetailData, oPassedFields, plantCode)
    debugger;
    console.log(oModelDetailData);
    oTableDetailData.setModel(oModelDetailData);
    oTableDetailData.bindRows({path: "/Rowset/Row/"});
    sap.ui.core.BusyIndicator.hide();
});