gpt4 book ai didi

data-binding - SAPUI5 表达式绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 09:52:22 32 4
gpt4 key购买 nike

是否可以将控件属性绑定(bind)到具有动态属性名称的模型,例如存储在另一个模型字段中?我以为我们可以使用 SAPUI5 Expression Binding为此目的,但它不起作用:跟踪窗口中的绑定(bind)被破坏,表达式似乎根本没有被评估。

XML View

<TextArea value="{= ${StackOverflow>/bindTextAreaTo} }" />

Controller

oModel = this.getView().getModel("StackOverflow");

/*
* The model have two properties: question and comment
* I want value of TextArea to be bound to one of them based on some condition
*/

oModel.setProperty("/question", "");
oModel.setProperty("/comment", "");

oModel.setProperty("/bindTextAreaTo",
bAsk ? "StackOverflow>/question" : "StackOverflow>/comment" );

最佳答案

不,这目前是不可能的。

但是,对于您想执行的操作,有一个简单的解决方法(见下文)。基本上,您创建一个 View 模型并在模型上设置一些 bool 值。然后在你的表达式绑定(bind)中使用这个标志来“动态地”定义应该使用什么模型的什么属性......

XMLView

<TextArea value="{= ${view>/ask} ? ${StackOverflow>/question} : ${StackOverflow>/comment} }" />

Controller

var oModel = this.getView().getModel("StackOverflow");
oModel.setProperty("/question", "");
oModel.setProperty("/comment", "");
//...

var oViewModel = new sap.ui.model.json.JSONModel();
this.getView().setModel(oViewModel, "view);
//...

oViewModel.setProperty("/ask", bAsk);

关于data-binding - SAPUI5 表达式绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521224/

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