如何在 SAPUI5 输入字段中添加浏览器缓存自动完成?

How to add browser cache autocomplete in SAPUI5 Input field?

如何在 SAPUI5 输入字段中添加浏览器缓存自动完成功能?

我有一个带输入字段的 SAPUI5 表单。我希望这些输入字段像任何其他网站一样显示浏览器历史记录的自动完成。有什么想法吗?

我建议使用 window.history 访问浏览器的历史记录。但是,出于安全原因,window.history 不允许查看各种 URL。

历史 API 在此处有详细的示例记录:https://developer.mozilla.org/en-US/docs/Web/API/History_API

但是,如果您可以在模型中存储希望打开建议的 URL,则可以避免 window.history 并简单地使用输入字段的建议功能。这里提供了一个示例: https://sapui5.hana.ondemand.com/explored.html#/sample/sap.m.sample.InputSuggestionsCustomFilter/preview

你的问题有点含糊,但我猜你想启用浏览器级别的表单字段自动完成功能。类似这个问题:Make text input fields remember previously entered data.

主要问题是浏览器会在这些条件下保存有关字段值的信息:

  • 输入框是有名字的(可以通过UI5sap.m.Input控件的"name"属性设置输入框的名字)
  • 包含的表单已提交。

通常,您不会在 UI5 中提交表单,因为这是一种非 AJAX 的数据传递方式。你可以看看这个问题:Trigger autocomplete without submitting a form 来解决这个问题。

或者,您可以自己将值存储在例如localStorage 并使用它们来填充 sap.m.Input 的 suggestionItems 聚合。

LocalCacheSettings: function(){

            var aSelectedTokens = this.getView().byId("processOrderNo").getTokens();
            var aModelData = [];
            for(var i = 0; i < aSelectedTokens.length ; i++){
                aModelData.push({
                    "key" : i.toString(),
                    "value" : aSelectedTokens[i].getText()
                });
        jQuery.sap.storage(jQuery.sap.storage.Type.local).put("myLocalData", aModelData);


        }
            this.aProcessOrderTyped = [];
            var oLocalCacheModel = new sap.ui.model.json.JSONModel();
            jQuery.sap.require("jquery.sap.storage");
            var oStorage = jQuery.sap.storage(jQuery.sap.storage.Type.local);
            //this.aProcessOrderTyped;
            if(oStorage.get("myLocalData")){
                this.aProcessOrderTyped = oStorage.get("myLocalData");
                oLocalCacheModel.setData(this.aProcessOrderTyped);
            }
            this.getView().setModel(oLocalCacheModel, "POModel");