Sapui5 输入控制和建议问题-SAP UI5

Sapui5 输入控制和建议问题-SAP UI5,sapui5,Sapui5,我有一个带有建议的输入控件。每当用户选择与输入内容匹配的内容时/如果输入的值是随机的,我们需要调用oData服务来验证输入。问题是:如果用户选择的值与前一个不同,则会调用该服务两次。这是因为两个功能都会触发两次。在更改()和suggestionItemSelected()时。我在两个地方调用相同的函数,因为基本上要完成相同的任务 如何确保如果确实更改了值,但从建议中选择了该值,则只调用该函数一次 XML.view “suggestionItemSelected”不需要事件处理程序。因为即使选择了

我有一个带有建议的输入控件。每当用户选择与输入内容匹配的内容时/如果输入的值是随机的,我们需要调用oData服务来验证输入。问题是:如果用户选择的值与前一个不同,则会调用该服务两次。这是因为两个功能都会触发两次。在更改()和suggestionItemSelected()时。我在两个地方调用相同的函数,因为基本上要完成相同的任务

如何确保如果确实更改了值,但从建议中选择了该值,则只调用该函数一次

XML.view


“suggestionItemSelected”不需要事件处理程序。因为即使选择了suggestionItemSelected,也会触发更改事件处理程序。

为什么需要“suggestionItemSelected”的事件处理程序?因为即使选择了SuggestionItem.Agree,也会触发更改事件处理程序。我仅在调用函数后才删除suggestionItemSelected。非常感谢。请把它作为你的答案。我会把它标记为正确和有用的。
<Input id="cc" change="onCC" showSuggestion="true" suggestionItems="{path:'order>/CreditCard'}" 
                            suggestionItemSelected="onCC">
                            <suggestionItems>
                                <core:Item key="{order>CardNumber}" text="{order>CardNumber}"/>
                            </suggestionItems>
                        </Input>
    onCardSelected: function (oEvent) {
    var sServiceUrl = this.getOwnerComponent().getMetadata().getManifestEntry("sap.app").dataSources["abc"].uri;
                            var OdataModel = new sap.ui.model.odata.v2.ODataModel(sServiceUrl);
                            var sPath = "/ABCSet";
                            var oFilters = [];
                            oFilters.push(new sap.ui.model.Filter("CardNumber", sap.ui.model.FilterOperator.EQ, valueEntered));

                            OdataModel.read(sPath, {
                                filters: oFilters,
                                success: this._ccValidateSuccess.bind(this),
                                error: this._ccValidateError.bind(this)
                            });
}