gpt4 book ai didi

sapui5 - 如何正确使用 JSONModel 和 setModel?

转载 作者:行者123 更新时间:2023-12-04 22:39:30 27 4
gpt4 key购买 nike

我正在尝试使用 SAP Web IDE 创建一个示例屏幕,其中单击不同的按钮会更改屏幕周围的不同文本。
我在 App.controller.js 中有几个函数,代码是这样的(所有函数现在都一样,但影响不同的文本区域):

onPressButton2: function () {
var oData = {
text: {
line1: "line1",
line2: "line2",
line3: "line3",
line4: "line4"
}
};
var oModel = new JSONModel(oData);
this.getView().setModel(oModel);
},

这是 XML 中的相应部分:

<items>
<Text xmlns="sap.m" text="{/text/line1}" id="text1"/>
<Text xmlns="sap.m" text="{/text/line2}" id="text2"/>
<Text xmlns="sap.m" text="{/text/line3}" id="text3"/>
<Text xmlns="sap.m" text="{/text/line4}" id="text4"/>
</items>

这有效,但是当我尝试更改屏幕的不同区域时,我之前通过单击按钮所做的更改消失了。我认为这是因为我每次都重新使用 setModel 覆盖它但我找不到正确的用法。

我应该为屏幕中的每个部分创建一个不同的 js 文件吗?
有没有办法更新模型而不是全部覆盖?

最佳答案

我认为您正在搜索的是命名模型。如果您想额外添加新模型,您可以使用命名模型创建不同的模型而不会覆盖它们。

var oModel = new JSONModel(oData);
this.getView().setModel(oModel, "model1");

查看 setmodel 方法中的第二个参数。现在您可以在 View 中访问它们
<items>
<Text xmlns="sap.m" text="{model1>/text/line1}" id="text1"/>
<Text xmlns="sap.m" text="{model1>/text/line2}" id="text2"/>
<Text xmlns="sap.m" text="{model1>/text/line3}" id="text3"/>
<Text xmlns="sap.m" text="{model1>/text/line4}" id="text4"/>
</items>

关于sapui5 - 如何正确使用 JSONModel 和 setModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55085815/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com