我想了解getEventBus().有人可以提供教程或最佳示例,我们可以在何处以及如何实施getEventBus().
我有一个包含一些磁贴的XMLView主页.这些切片是从JSON文件填充的.磁贴具有'title'属性,需要i18n数据绑定.
XML视图的一部分:
<TileContainer id="container" tiles="{/TileCollection}">
<StandardTile
icon="{icon}"
title="{title}"
press="onPress" />
</TileContainer>
Run Code Online (Sandbox Code Playgroud)
JSON文件:
{
"TileCollection" : [
{
"icon" : "sap-icon://document-text",
"title" : "{i18n>foo}"
},
... etc
Run Code Online (Sandbox Code Playgroud)
我完成数据绑定的旧方法直接在视图中title="{i18n>foo}".当然,现在我基本上有两层数据绑定,一个用于i18n的JSON,另一个用于获取JSON(获取i18n)的视图.
这也是我设置i18n模型的Component.js.
sap.ui.core.UIComponent.extend("MYAPP.Component", {
metadata: {
rootView : "MYAPP.view.Home", //points to the default view
config: {
resourceBundle: "i18n/messageBundle.properties"
},
... etc
init: function(){
sap.ui.core.UIComponent.prototype.init.apply(this, arguments);
var mConfig = this.getMetadata().getConfig();
var oRouter = this.getRouter();
this.RouteHandler = new sap.m.routing.RouteMatchedHandler(oRouter);
oRouter.register("router");
oRouter.initialize();
var sRootPath = jQuery.sap.getModulePath("MYAPP");
var i18nModel = new sap.ui.model.resource.ResourceModel({
bundleUrl : [sRootPath, mConfig.resourceBundle].join("/") …Run Code Online (Sandbox Code Playgroud) 我在 XML 文件中的屏幕上有几个元素
<layout:VerticalLayout xmlns:layout="sap.ui.layout" xmlns="sap.m">
<Input />
<Button />
<!-- ... -->
</layout:VerticalLayout>
Run Code Online (Sandbox Code Playgroud)
如何添加布局重力或垂直对齐控件之类的内容?例如,我想要元素位于屏幕中央。
不管这个
<List id="list" items="{/Report}">
<items>
<ObjectListItem press="onSelect" title="{TYPE}"> </ObjectListItem>
</items>
</List>
Run Code Online (Sandbox Code Playgroud)
也不是这个
<List id="list" items="{/Report}" itemPress="onSelect">
<items>
<ObjectListItem title="{TYPE}"> </ObjectListItem>
</items>
</List>
Run Code Online (Sandbox Code Playgroud)
火灾
onSelect : function (oEvent) {
'use strict';
console.log("onSelect");
}
Run Code Online (Sandbox Code Playgroud)
在控制器中.
可能是什么原因导致的 控制台中没有相关的错误消息.
使用数据聚合时sap.m.Select,始终选择第一个条目.这是SDK预览的链接.
我的应用程序的示例代码
new sap.m.Select("id-names", {
width: '100%',
}).bindAggregation("items", "data>/trip/names", new sap.ui.core.Item({
text: "{data>Name}"
}));
Run Code Online (Sandbox Code Playgroud)
selectedKey在构造函数上调用了一个参数,将其更改为另一个索引.我想要的是选择为空白,因为我想强迫我的用户做出选择,而不是温和地接受列表中的第一个条目.
我可以强制我的聚合中的空白条目,data>/trip/names但这会污染我的列表.
有没有更好的方法来实现这一目标?
我对Odata主题很陌生,并尝试了解使用OData服务时的最佳实践场景.
Sceanrio 1:
我有一个复杂的应用程序,其中有几个来自远程Odata模型的EntitySets,它是从SAP Backend加载的.我可以读取数据并将其绑定到UI控件,这不是问题,但我感到困惑的是我如何/应该将数据写回到后端.
第一个假设Odata是单向绑定:
用户操作inputFields,dropdown,tables等,并使用createEntry()或setProperty()将所有数据写入Odata模型.对?或者我应该使用另一个JSONModel并收集所有用户更改?
问题:如何将Odata模型上的更改转移到后端?什么是最好的实践我已经阅读了有关批处理或拥有自己的服务的东西,并使用create()函数触发这个?有人可以提供一些提示或某种食谱.
Sceanrio 2:
双向绑定中的Odata?
这是如何运作的 ?OdataServices中后端必须提供哪些先决条件?我读了一些它是实验性的东西.
你看我有点困惑.
我有一张表有很多数据.现在我想垂直滚动表头固定.我可以做到这一点吗?
这是我的代码:
onInit: function() {
var data = new JSONModel("Model/data.json");
this.getView().setModel(data);
var otable = this.getView().byId("PlaceIt");
otable.bindItems("/employees", new ColumnListItem({
cells: [
new Text({
text: "{name}"
}),
new Text({
text: "{Physics}"
}),
new Text({
text: "{Chemistry}"
}),
new Text({
text: "{Maths}"
}),
new Text({
text: "{English}"
})
]
}));
otable.setModel(data);
var oScrollContainer = new ScrollContainer({
height: "100px",
vertical: true,
focusable: true,
content: [oTableItems]
});
},
Run Code Online (Sandbox Code Playgroud)
<Table id="PlaceIt">
<columns>
<Column>
<Text text="Student Name" />
</Column>
<Column>
<Text text="Physics" />
</Column>
<Column>
<Text text="Chemistry" …Run Code Online (Sandbox Code Playgroud) 如何检索View/ Fragmenta sap.ui.core.Control属于?
BR克里斯
我在Web IDE for SAPUI5中创建了一个Master-Details应用程序.
我将我的应用程序连接到OData服务.连接参数已存储在manifest.json.
我想阻止我的UI5应用程序在从OData端点请求数据时使用批处理请求.
我知道如何使用以下代码禁用特定请求的批处理请求:
var oDataModel = this.getModel();
oDataModel.setUseBatch(false);
Run Code Online (Sandbox Code Playgroud)
但问题是我无法在onInit功能中使用它.我可以设置一些参数manifest.json来禁用批量请求,即使程序加载时也不使用批处理吗?
我有一个要求,需要将列表项的数量实时更新到页面的子标题。我想要 use sap.ui.base.EventProvider、聚合绑定或表达式绑定。请引导我完成,因为我以前从未使用过它。
如果我删除列表项,列表项的数量应该实时更新。