【问题标题】:SAPUI5 Suggestion Popup doesn't appearSAPUI5 建议弹出窗口不出现
【发布时间】:2022-06-11 11:38:20
【问题描述】:

我正在尝试使 SAPUI5 输入在用户键入时具有实时建议。

<Input id="modeloInput" type="Text" maxLength="20" editable="true" required="true"
                                showValueHelp="true" submit="onModeloSubmit" suggest="onSuggest" suggestionItemSelected="handleSuggestionModelo" showSuggestion="true" startSuggestion="3"  suggestionItems="{ModeloVH>/ItemsTableFiltered}" valueHelpRequest="handleModeloValueHelp" 
                            
                                value="{ path: 'SearchModel>/modelo', type: 'sap.ui.model.type.String', constraints: { minLength: 4, maxLength: 20} }" textAlign="End">
                                <layoutData>
                                    <l:GridData span="L4 M4 S4"/>
                                </layoutData>
                            <suggestionItems>
                                <core:Item key="{ModeloVH>Zprodh}" text="{ModeloVH>Zvtext4o}" />
                            </suggestionItems>
</Input>

在我的控制器中:

{
        onSuggest: function (oEvent) {

            var text = that.inputModelo.getValue();
        

        that.getView().getModel("ModeloVH");
            var suggestionModel = that.getModeloHelpModel();


            var items = suggestionModel.getData().ItemsTable;

            var filteredItems = items.filter(item => item.Zvtext40.startsWith(text));
            suggestionModel.setProperty("/ItemsTableFiltered", filteredItems);
            suggestionModel.setProperty("/ItemsTableFiltered",items);

            that.inputModelo.setModel("ModeloVH",suggestionModel);
            that.inputModelo.setModel(suggestionModel, "ModeloVH");
            var bindingSuggestionItems = oEvent.getSource().getBinding('suggestionItems');
            

            that.inputModelo.getModel("ModeloVH").refresh(true);
        }
}

如果我查看SuggestItems 绑定,结果如下:

建议弹出窗口不会触发:

我得到了 onInit 方法的所有数据。 无法触发建议弹出窗口。

有什么建议吗?

谢谢。

【问题讨论】:

标签: input sapui5 search-suggestion


【解决方案1】:

作为快速修复, 我发现我可以通过编程方式添加项目:

addItemToSuggestion: function(input, key, text) {

           input.addSuggestionItem( 
                            new sap.m.SuggestionItem({  
                             key: key,     
                              text: text  
                             }) 
           ) 
     },  

在 onSuggest 事件中,遍历结果列表并调用函数:

filteredItems.forEach(item =>   that.addItemToSuggestion(that.inputModelo, item.Zprodh, item.Zvtext40));

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 1970-01-01
    • 2022-11-03
    • 2013-03-24
    • 2022-01-18
    • 1970-01-01
    • 2021-10-07
    • 2012-04-14
    相关资源
    最近更新 更多