将JSON绑定到具有模型名称

时间:2017-01-03 09:00:16

标签: json xml sapui5

如果我想将JSON绑定到视图:

XML:

<m:Input id="name" value="{/name}" enabled="false"/>

控制器:

var data = {name : "name"};
var oModel = new JSONModel(data);
this.getView().setModel(oModel);

以及如何使用特定的模型名称将JSON绑定到视图?

控制器:

var data = {name : "name"};
var oModel = new JSONModel(data, "data");
this.getView().setModel(oModel);

如何在xml中编码?我试试这个,但没有绑定。

<m:Input id="name" value="{data>/name}" enabled="false"/>

因为我想用2个源json数据绑定,如果我使用spesified模型名称设置,只有一个模型绑定到视图。

谢谢, 波比

1 个答案:

答案 0 :(得分:8)

可以将n个模型绑定到视图中。您可以指定与视图(或任何控件)绑定的模型的别名。您在创建模型时不指定别名,但在将模型设置为控件时(如视图)。

所以,这是错误的:

var data = {name : "name"};
var oModel = new JSONModel(data, "data"); // Alias is not specified here
this.getView().setModel(oModel);

正确的代码是:

var data = {name : "name"};
var oModel = new JSONModel(data); // Only set data here.
this.getView().setModel(oModel, "data"); // set the alias here

类似地,

var data = {employeeName: "Rahul"};
var oModel = new JSONModel(data); // Only set data here.
this.getView().setModel(oModel, "EmployeeData"); // set the alias here

在视图中,

<m:Input id="name" value="{data>/name}" enabled="false" description="{EmployeeData>/employeeName}"/>
<m:Input id="name" value="{EmployeeData>/employeeName}" enabled="false"/>