简体   繁体   English

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

[英]Bind JSON to view (SAPUI5) with model name

If I want to bind JSON to view: 如果我想绑定JSON来查看:

XML: XML:

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

controller: 控制器:

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

and how to bind JSON to view with spesified model name? 以及如何使用特定的模型名称将JSON绑定到视图?

controller : 控制器:

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

how to code in xml? 如何在xml中编码? I try this but not bind. 我尝试这个但不绑定。

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

because I want to bind with 2 source json data, if i set with spesified model name, just one model bind to view. 因为我想用2个源json数据绑定,如果我用spesified模型名称设置,只有一个模型绑定到视图。

Thanks, Bobby 谢谢,鲍比

It is possible to bind n numbers of models to the view. 可以将n个模型绑定到视图中。 You can specify the alias with which model is bound to the view ( or any control). 您可以指定与视图(或任何控件)绑定的模型的别名。 You do not specify alias while creating model but at the time of setting the model to the control ( like view). 在创建模型时,但在将模型设置为控件(如视图)时,不指定别名。

So, this is wrong: 所以,这是错误的:

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

Correct code is : 正确的代码是:

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

Similarly, 同样的,

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

And in View, 并在视图中,

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM