我想把这些值传递给标签消费odata
I want to pass the values to label consuming odata
由于声明的变量(idno,namecity)在括号内,我无法访问它们。这是获得价值的方式,还是哪种方式是最好的方式。谢谢
<script>
var app = sap.m.App("myApp",{});
var url = "proxy/http/server/ZCUST_TESTING_SRV /?$filter=IKunnr eq '800COL101'";
var username = "mobtest";
var password = "welcome1";
var oModel = new sap.ui.model.odata.ODataModel(url, true, username, password);
oModel.read('/', null, null, true, function(oData, oResponse)
{
var dataget = JSON.stringify(oData);
var count = oData.results[0].Ort01;
var namecity= oData.results[0].Name1;
var idno= oData.results[0].Kunnr;
});
var l4 = new sap.m.Label("l4",{text: count});
var l5 = new sap.m.Label("l5",{text: namecity});
var l6 = new sap.m.Label("l6",{text: idno});
var page = new sap.m.Page("page",{
title:"Address Details",
showNavButton:true,
navButtonTap: function(){
//app.back();
app.to("Page");
},
content: [ l4,l5,l6, new sap.m.Button({text:"submit" }})]
});
app.addPage(page);
app.placeAt('content');
</script>
根据您问题评论中的讨论,我为您举了一个例子,说明如何更恰当地使用ODataModel,不必与之对抗,不必进行显式读取,不直接访问results
属性,也不手动捕获检索到的数据并将其放入新的JSON模型中。
基本上,实例化ODataModel,在控件属性上使用绑定语法,并设置适当的绑定上下文,以便解析相对路径。
这是JS Bin的例子。我用XML编写了UI控件,因为它更干净,并使用了Northwind模型,但在其他方面,我试图保持您最初的目标。
以下是该示例中的一些片段:
<App>
<Page
binding="{/Employees(1)}"
title="Address Details"
showNavButton="true">
<content>
<Label text="{TitleOfCourtesy}" />
<Label text="{FirstName}" />
<Label text="{LastName}" />
</content>
</Page>
</App>
请注意页面上的绑定以及标签文本属性中的绑定。
oView
.setModel(new sap.ui.model.odata.ODataModel(
"http://cors-anywhere.herokuapp.com/http://services.odata.org/V3/Northwind/Northwind.svc/",
{
json : true,
maxDataServiceVersion : "2.0"
}
))
注意ODataModel的设置方式,注意没有任何read()
调用,没有任何试图捕获和存储数据的回调成功处理程序,也没有任何帮助JSON模型。(此外,我正在使用非常有用的cors-anywhere服务,因此我们可以在不使用代理等的情况下查看远程OData服务的示例)。
当OData调用成功完成后调用回调函数时,会将回调之外的count、namecity和其他变量设置为"未定义",而这些变量仅在此时设置。您应该在回调中执行UI呈现逻辑,最佳实践是使用数据绑定。
例如,您的JSON字符串如下:
{
"results":
[
{
"Ort01":"1",
"Name1":"2",
"Kunnr": "3"
}
]
}
按以下方式进行数据绑定:
var oModel = new sap.ui.model.odata.ODataModel(url, true, username, password);
var l4 = new sap.m.Label("l4",{text: "{/results/0/Ort01}"});
// {/results/0/Ort01} is the binding path
var l5 = new sap.m.Label("l5",{text: "{/results/0/Name1}"});
var l6 = new sap.m.Label("l6",{text: "{/results/0/Kunnr}"});
var page = new sap.m.Page("page",{
title:"Address Details",
showNavButton:true,
navButtonTap: function(){
//app.back();
app.to("Page");
},
content: [ l4,l5,l6, new sap.m.Button({text:"submit" }})]});
app.addPage(page);
app.placeAt('content');
oModel.read('/', null, null, true, function(oData, oResponse)
{
//Data binding
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData(oData);
page.setModel(oModel);
});
这是你的出发点。有关详细信息,请参阅演示应用程序的文档和阅读代码。
谨致问候,Allen
相关文章:
- 在<页眉>标签
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- iframe正在添加标签,需要删除它们
- 如何自动调整标签的高度以适应内容
- Jquery标签插件粘贴问题
- Twitter引导程序Typeahead-Id&标签
- Highcharts-如何在自定义格式化程序中获得默认的y轴标签格式化程序
- Morris.js折线图x轴标签在调整大小后消失
- JavaScript goto 标签如何使用内部循环
- 显示某个用户ID的某个标签的30张Instagram图片
- 标签客户端的设置值
- 谷歌图表显示所有标签
- 如何在图片和边缘之间居中设置标签
- 在Datatables中设置本地化后,需要更改标签文本
- 第二组标签及其内容赢得'默认情况下t加载
- 在一个javascript文件中为整个网站创建标签
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- Knockout.JS标签在foreach内部不起作用
- 如何在离子框架+有角度的框架中制作顶部标签
- 我想把这些值传递给标签消费odata