我正在按照 使用 RAP 上传 Excel:第 -3 部分 | 开发我的第一个 Fiori 应用程序SAP 博客.
由于博客现在有点旧,我必须编辑博客中的一些内容才能使其正常工作。
现在,我可以看到上传对话框,但上面的按钮不起作用。
请参阅最后的截图。
虽然顶部的上传按钮可以工作,但底部的 3 个从片段中添加的按钮都不起作用。
我尝试在片段中进行更改
<Button id="Template" text="Template" press="onTempDownload" icon="sap-icon://download-from-cloud" type="Emphasized"/><br>
到
<Button id="Template" text="Template" press=".onTempDownload" icon="sap-icon://download-from-cloud" type="Emphasized"/><br>
通过添加一个点来引用控制器
以及
<Button id="Template" core:require="{ handler: '/home/user/projects/ypgms_building_v2/webapp/ext/controller/ListReportExt'}" text="Template" press="handler.onTempDownload" icon="sap-icon://download-from-cloud" type="Emphasized"/>
但是第二次更正给了我一个错误,即该路径不在资源下。我不知道如何让 /ext 文件夹显示在 F12 开发人员选项的资源部分下。
最终,按钮应该触发控制器中相应的功能,如片段中的按下事件中所述,但这没有发生。
正确的做法是什么?
谢谢
文件结构:
清单文件中的片段:
控制器中某个按钮的代码片段:
使用的片段:
输出:
正如之前提到的,您的代码有点混乱,但是我附加了我通常用来打开对话框的通用函数。然后,对话框和从其中调用的函数可以由视图的控制器处理。
onOpenDialog(oEvent, sDialogId, oDialogPath) {
return new Promise((resolve) => {
if (!this.getView().byId(sDialogId)) {
Fragment.load({
id: this.getView().getId(),
name: oDialogPath,
controller: this,
}).then(
function (oDialog) {
this.getView().addDependent(oDialog);
oDialog.addStyleClass(this.getOwnerComponent().getContentDensityClass());
oDialog.open();
resolve();
}.bind(this)
);
} else {
this.getView().byId(sDialogId).open();
resolve();
}
});
},