【发布时间】:2018-02-21 21:02:52
【问题描述】:
我的列表绑定:
<StandardListItem
title="{NewProposalTitle_DE}"
description="Stream: {Stream}, Time: {starttime}"
press="handlePress"
>
当用户是英语时,我想将 oData 模型中的title 绑定更改为title="{NewProposalTitle_EN}"。
我研究了表达式绑定,但这似乎不适用于动态数据:
title="{= {language} === "de" ? {NewProposalTitle_DE} : {NewProposalTitle_EN} }
所以我尝试了一种不同的方法,我遍历 SAPUI5 列表中的所有项目,如果用户的语言是英语,我想将(德语)title 属性更改为英语,并向项目的添加一个数字counter 属性。
var Items = this.getView().byId("idList").getItems();
for (var i = 0; i < Items.length; ++i) {
if(language === "en"){
Items[i].setTitle(oData.results[i].Title_EN);
}
Items[i].setCounter(numbers[i]);
}
如果语言是德语,一切都像魅力一样,并且计数器设置正确,但如果语言是英语,事情就会变得可疑。 当标题用英文标题更新时,计数器设置回 0(默认值)。更奇怪的是,如果德文版和英文版标题相同(因此无需更改),计数器仍会显示(我假设 SAPUI5 足够聪明,可以识别,无需更改)。
我在尝试为项目添加样式类时遇到了同样的问题:
Items[i].addStyleClass("blue");
同样,只要 title 不被更改,它就可以工作。
我尝试以各种可能的方式更改顺序,但没有成功。
我还尝试了setCounter 和addStyleClass 并省略了setTitle 命令,但只有一个影响了DOM。
【问题讨论】:
标签: javascript sapui5