如何将 $count 放入磁贴中
How to get $count into a tile
我是一名 ABAP 开发人员,正试图迈出 SAPUI5/Fiori 的第一步。
所以我非常简单的任务是创建一个 fiori 应用程序,其中包含一个磁贴来显示 EDIDC 记录的数量。
View1.controller.js:
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function (Controller) {
"use strict";
return Controller.extend("QuickStartApplication.controller.View1", {
onGetValue: function ( ) {
var oTileValue = this.getView().byId("tile1");
this.getModel().read("/EDIDCSet/$count", {
success: $.proxy(function (oEvent, oResponse) {
// var count = Number(oResponse.body);
var count = "1337";
oTileValue.setValue(count);
}, this)
});
}
});
});
View1.view.xml:
<mvc:View xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
controllerName="QuickStartApplication.controller.View1">
<App id="idAppControl">
<pages>
<Page xmlns="sap.m" id="pageId" title="TileTest" floatingFooter="true">
<content>
<Button xmlns="sap.m" text="Button" id="button0" press=".onGetValue"/>
<GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Country-Specific Profit Margin" subheader="Expenses"
press="press" id="tile1">
<TileContent unit="EUR" footer="Current Quarter">
<NumericContent scale="M" value="1000" valueColor="Error" indicator="Up" withMargin="false"/>
</TileContent>
</GenericTile>
</content>
</Page>
</pages>
</App>
</mvc:View>
如您所见,我什至无法传递我硬编码的值“1337”。
我的第一个错误是定位磁贴而不是文件的数字内容。所以首先,我将 ID 赋予了数字内容:
<NumericContent scale="M" value="" valueColor="Error" indicator="Up" withMargin="false" id="num1"/>
然后,我调整了行,访问对象:
var oTileValue = this.getView().byId("num1");
我学到的最后一件事是,模型连接到视图。所以为了访问它,我将行更改为:
this.getView().getModel().read("/EDIDCSet/$count", {
现在我可以调用我的函数 onGetValue
并且它正在运行。
我是一名 ABAP 开发人员,正试图迈出 SAPUI5/Fiori 的第一步。
所以我非常简单的任务是创建一个 fiori 应用程序,其中包含一个磁贴来显示 EDIDC 记录的数量。
View1.controller.js:
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function (Controller) {
"use strict";
return Controller.extend("QuickStartApplication.controller.View1", {
onGetValue: function ( ) {
var oTileValue = this.getView().byId("tile1");
this.getModel().read("/EDIDCSet/$count", {
success: $.proxy(function (oEvent, oResponse) {
// var count = Number(oResponse.body);
var count = "1337";
oTileValue.setValue(count);
}, this)
});
}
});
});
View1.view.xml:
<mvc:View xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
controllerName="QuickStartApplication.controller.View1">
<App id="idAppControl">
<pages>
<Page xmlns="sap.m" id="pageId" title="TileTest" floatingFooter="true">
<content>
<Button xmlns="sap.m" text="Button" id="button0" press=".onGetValue"/>
<GenericTile class="sapUiTinyMarginBegin sapUiTinyMarginTop tileLayout" header="Country-Specific Profit Margin" subheader="Expenses"
press="press" id="tile1">
<TileContent unit="EUR" footer="Current Quarter">
<NumericContent scale="M" value="1000" valueColor="Error" indicator="Up" withMargin="false"/>
</TileContent>
</GenericTile>
</content>
</Page>
</pages>
</App>
</mvc:View>
如您所见,我什至无法传递我硬编码的值“1337”。
我的第一个错误是定位磁贴而不是文件的数字内容。所以首先,我将 ID 赋予了数字内容:
<NumericContent scale="M" value="" valueColor="Error" indicator="Up" withMargin="false" id="num1"/>
然后,我调整了行,访问对象:
var oTileValue = this.getView().byId("num1");
我学到的最后一件事是,模型连接到视图。所以为了访问它,我将行更改为:
this.getView().getModel().read("/EDIDCSet/$count", {
现在我可以调用我的函数 onGetValue
并且它正在运行。