我有一个XML视图,我用它来显示IconTabBar.在用户选择其中一个"IconTab"时,我想在控制器js文件中触发一个方法.
我有一个IconTab定义的代码.
<IconTabFilter text="Data" icon="sap-icon://documents" press="onData">
<content press="onData" id="data">
<cmn:Tree nodes="{/aRoot}">
<cmn:TreeNode text="{@name} TagNameHere?"></cmn:TreeNode>
</cmn:Tree>
</content>
</IconTabFilter>
Run Code Online (Sandbox Code Playgroud)
我假设press ="onData"允许我在控制器文件上触发一个方法.它不是.
有谁知道这是否可以做到,如果可以的话怎么办?
谢谢
马丁
这基本上是针对这个问题的变通方法试验:" 如何在XML视图中使用自定义排序器 "
由于目前无法在XML视图中使用自定义排序器,我想也许可以在控制器中设置排序器.
你如何用JS视图做到这一点是这样的:
var oTemplate = ... // irrelevant
var oList = new sap.m.List({
id: this.createId("someList"),
items: {
path: "/list",
template: oTemplate,
sorter: foo.bar.CustomSorter
}
});
Run Code Online (Sandbox Code Playgroud)
当我想将其转换为XML视图时,我有以下内容:
<m:List id="someList"
items="{path: '/list'}">
<!-- hid ListItem implementation -->
</m:List>
Run Code Online (Sandbox Code Playgroud)
那么,如何在控制器中将分拣机设置到此列表中?还有,在哪里挂钩呢?选项:
onInitonBeforeRenderingonAfterRendering所以,我的期望是这样的:
sap.ui.controller("foo.bar.controller.SomeController", {
onInit : function(){
var oList = this.getView().byId("someList");
oList.get___Something___().setSorter(foo.bar.CustomSorter);
};
};
Run Code Online (Sandbox Code Playgroud)
但似乎不可能.
我在我的混合(Cordova WebView)方法中使用OpenUI5.当下载最新的OpenUI5版本时,我最终得到了大量的文件,我不知道哪些是我的目的所必需的.似乎没有预编译文件包含移动/混合/任何方法所需的所有内容.
你们怎么解决这个问题?
谢谢,新年快乐!
我试图在运行时创建一个sap.m.Text并删除创建的元素.创建很简单,但删除元素是一个问题.我找不到办法做到这一点.
代码:
创建新的sap.m.Text(this.createId("Row1"))
去掉
_oThis.getView().removeContent(1); // Doesn't work
_oThis.getView().removeContent(oObjText); // Doesn't work
_oThis.getView().removeContent(sap.ui.getCore().byId('Row1')); // Doesn't work
_oThis.getView().removeContent(view.byId(oo)); // Doesn't work
_oThis.getView().removeContent('Row1'); // Doesn't work
Run Code Online (Sandbox Code Playgroud)
删除元素os $('Row1')的东西.remove(); //但是如果使用相同的ID'Row1'添加回来,则不会从聚合中删除并给出重复的ID错误
PS:$('Row1').remove()不能真正起作用,因为它没有从视图对象中删除.如何通过ID从JS View中删除文本/按钮或任何控件?
https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.core.mvc.View.html#removeContent
我从第一个SAPUI5应用程序开始,构建了一个响应表.现在我需要为特定行着色取决于模型中的值.
我正在使用XML-View.
我可以在控制器中定义一个方法吗?(它应该如何工作?)
Home.view.xml
<Table id="idMachineTable"
inset="false"
items="{
path: 'machinemodel>/collection'
}">
<headerToolbar>
<Toolbar>
<Title text="Header" level="H2"/>
</Toolbar>
</headerToolbar>
<columns>
<Column
width="12em">
<Text text="Product" />
</Column>
<Column
hAlign="Right">
<Text text="Price" />
</Column>
</columns>
<items>
<ColumnListItem>
<cells>
<ObjectIdentifier
title="{machinemodel>test}"
text="{machinemodel>test}"/>
<Text
text="{machinemodel>test}" />
</cells>
</ColumnListItem>
</items>
</Table>
Run Code Online (Sandbox Code Playgroud) 我需要在AJAX调用期间显示忙指示符.所以我用过<BusyIndicator text="Please wait ..."/>.如何在控制器中显示/隐藏此指示器?现在它总是显示出来.
我正在使用SAPUI5开发的WebIde.
如果我写了一个console.log或alert它在编辑器里面显示意外警报的错误等等.
虽然代码有效,但我更喜欢在编辑器中看不到这些错误.
如何自定义WebIde以不显示这些错误.
对于一些我不知道的原因,我无法选择sap.m.IconTabFilter,就像它不能按下一样(鼠标悬停指针没有出现,当我按下时,没有任何反应).此问题在Chrome中经历过.在Mozilla它工作正常.
当我在Chrome中将XML复制到jsbean时,它运行正常.有没有人遇到同样的问题?怎么解决?我试图清除缓存,重新启动浏览器/ pc - 问题仍然存在.
另外,我正在使用sap.m.Switch控件遇到同样的问题.
更新:我认为这是一个特定于PC的问题.问题是,在Chrome中,应用程序决定它在平板电脑上运行(而不是笔记本电脑.笔记本电脑也可以作为平板电脑使用,但我在笔记本电脑模式下运行应用程序).这适用于相应的应用程序的行为.也许这可能是问题的根源?
没有应用自定义CSS,只有默认CSS.
我们即将关闭SAPUI5应用程序,最后一步是制作Component-Preload.js文件以提高性能.我在网上阅读了不同的指南,所有这些指南都需要我安装的Node.js.我不是那个包的专家,我无法想象如何使其中一个指南工作.我正在使用NetBeans进行开发.据我所知,没有官方工具(我是对的吗?)来生成该文件.有比我更多经验的人能否提出一份有效的,解释良好的指南来执行该任务?