将过滤器应用于 Sap.m.Input 的建议项时输入值被删除
Input value is deleted on applying filters to suggestion items for Sap.m.Input
我正在处理 Sap.m.Input 个建议项目。输入建议工作正常,但是当我从建议列表中选择一个项目然后删除该值并输入一个新值时,它会自动删除新输入的值而不显示任何建议。我调试了我的代码,在 oBinding.filters() 行删除了值。我的代码如下,
<Input id="input" placeholder="{i18n>input}" editable="true" startSuggestion="2"
showSuggestion="true" suggest="handleSuggest"
suggestionItemSelected="onSelectedItem"
suggestionItems="{path:'abc>/abSet',templateShareable:true, parameters:{select: 'ab,bc'}}">
<suggestionItems growing="true" growingScrollToLoad="true">
<core:Item key="{abc>ab}" text="{abc>ab} {abc>bc}"/>
</suggestionItems>
</Input>
控制器
handleSuggest: function (oEvent) {
var sTerm = oEvent.getParameter("suggestValue"),
oSource = oEvent.getSource(),
oBinding,
aFilters = [];
oSource.setBusy(false);
if (sTerm) {
aFilters.push(new Filter("bc", FilterOperator.Contains, sTerm));
aFilters.push(new Filter("cd", FilterOperator.EQ, ""));
aFilters.push(new Filter("de",FilterOperator.EQ, ""));
}
oBinding = oSource.getBinding("suggestionItems");
var Filters = [];
Filters.push(new Filter({
filters: aFilters,
and: true
}));
oBinding.getModel().setSizeLimit(500);
oBinding.filter(Filters);
},
//Once the suggestion BP is choosen retreiving the key
onSelectedItem: function (oEvent) {
var sItems = oEvent.getParameter("selectedItem");
if (sItems !== null)
filterValue = sItems.getKey();
},
非常感谢您的帮助
对我来说,解决方案是从 suggestionItems
聚合中的 <core:Item />
元素中删除 属性 key
。
在 1.44 版之后发生了一些变化,属性 key
会导致一些奇怪的行为,但我仍然不明白为什么。
“在版本 1.44 之后发生了一些变化,属性 键在某种程度上导致了一些奇怪的行为,但我仍然不明白为什么。”
为避免奇怪的行为,请添加 valueLiveUpdate="true"
您的代码应该如下所示
<Input
id="input"
placeholder="{i18n>input}"
editable="true"
startSuggestion="2"
showSuggestion="true"
suggest="handleSuggest"
suggestionItemSelected="onSelectedItem"
valueLiveUpdate="true"
suggestionItems="{
path: 'abc>/abSet',
templateShareable: true,
parameters:{select: 'ab,bc'}
}">
<suggestionItems
growing="true"
growingScrollToLoad="true">
<core:Item key="{abc>ab}" text="{abc>ab} {abc>bc}"/>
</suggestionItems>
</Input>
我正在处理 Sap.m.Input 个建议项目。输入建议工作正常,但是当我从建议列表中选择一个项目然后删除该值并输入一个新值时,它会自动删除新输入的值而不显示任何建议。我调试了我的代码,在 oBinding.filters() 行删除了值。我的代码如下,
<Input id="input" placeholder="{i18n>input}" editable="true" startSuggestion="2"
showSuggestion="true" suggest="handleSuggest"
suggestionItemSelected="onSelectedItem"
suggestionItems="{path:'abc>/abSet',templateShareable:true, parameters:{select: 'ab,bc'}}">
<suggestionItems growing="true" growingScrollToLoad="true">
<core:Item key="{abc>ab}" text="{abc>ab} {abc>bc}"/>
</suggestionItems>
</Input>
控制器
handleSuggest: function (oEvent) {
var sTerm = oEvent.getParameter("suggestValue"),
oSource = oEvent.getSource(),
oBinding,
aFilters = [];
oSource.setBusy(false);
if (sTerm) {
aFilters.push(new Filter("bc", FilterOperator.Contains, sTerm));
aFilters.push(new Filter("cd", FilterOperator.EQ, ""));
aFilters.push(new Filter("de",FilterOperator.EQ, ""));
}
oBinding = oSource.getBinding("suggestionItems");
var Filters = [];
Filters.push(new Filter({
filters: aFilters,
and: true
}));
oBinding.getModel().setSizeLimit(500);
oBinding.filter(Filters);
},
//Once the suggestion BP is choosen retreiving the key
onSelectedItem: function (oEvent) {
var sItems = oEvent.getParameter("selectedItem");
if (sItems !== null)
filterValue = sItems.getKey();
},
非常感谢您的帮助
对我来说,解决方案是从 suggestionItems
聚合中的 <core:Item />
元素中删除 属性 key
。
在 1.44 版之后发生了一些变化,属性 key
会导致一些奇怪的行为,但我仍然不明白为什么。
“在版本 1.44 之后发生了一些变化,属性 键在某种程度上导致了一些奇怪的行为,但我仍然不明白为什么。”
为避免奇怪的行为,请添加 valueLiveUpdate="true"
您的代码应该如下所示
<Input
id="input"
placeholder="{i18n>input}"
editable="true"
startSuggestion="2"
showSuggestion="true"
suggest="handleSuggest"
suggestionItemSelected="onSelectedItem"
valueLiveUpdate="true"
suggestionItems="{
path: 'abc>/abSet',
templateShareable: true,
parameters:{select: 'ab,bc'}
}">
<suggestionItems
growing="true"
growingScrollToLoad="true">
<core:Item key="{abc>ab}" text="{abc>ab} {abc>bc}"/>
</suggestionItems>
</Input>