Nik*_*Kim 3 data-binding sapui5
是否可以将控制属性绑定到具有动态属性名称的模型,例如,存储在另一个模型字段中?我认为我们可以为此目的使用SAPUI5 Expression Binding,但它不起作用:跟踪窗口中的绑定被破坏,表达式似乎根本没有被评估.
XML视图
<TextArea value="{= ${StackOverflow>/bindTextAreaTo} }" />
Run Code Online (Sandbox Code Playgroud)
调节器
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" );
Run Code Online (Sandbox Code Playgroud)
不,这是目前不可能的.
但是,对于您想要做的事情,有一个简单的解决方法(见下文).基本上,您创建一个视图模型并在模型上设置一些布尔值.然后在表达式绑定中使用此标志来"动态"定义要使用的模型的属性...
xmlView中
<TextArea value="{= ${view>/ask} ? ${StackOverflow>/question} : ${StackOverflow>/comment} }" />
Run Code Online (Sandbox Code Playgroud)
调节器
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6033 次 |
| 最近记录: |