将JSON绑定到具有模型名称的视图(SAPUI5)

Alb*_*tus 3 xml json sapui5

如果我想绑定JSON来查看:

XML:

<m:Input id="name" value="{/name}" enabled="false"/>
Run Code Online (Sandbox Code Playgroud)

控制器:

var data = {name : "name"};
var oModel = new JSONModel(data);
this.getView().setModel(oModel);
Run Code Online (Sandbox Code Playgroud)

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

控制器:

var data = {name : "name"};
var oModel = new JSONModel(data, "data");
this.getView().setModel(oModel);
Run Code Online (Sandbox Code Playgroud)

如何在xml中编码?我尝试这个但不绑定.

<m:Input id="name" value="{data>/name}" enabled="false"/>
Run Code Online (Sandbox Code Playgroud)

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

谢谢,鲍比

Rah*_*waj 8

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

所以,这是错误的:

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

正确的代码是:

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

同样的,

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

并在视图中,

<m:Input id="name" value="{data>/name}" enabled="false" description="{EmployeeData>/employeeName}"/>
<m:Input id="name" value="{EmployeeData>/employeeName}" enabled="false"/>
Run Code Online (Sandbox Code Playgroud)