Fiori Launchpad自定义Tile Controller.js路径问题

2020-09-14 10:21发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我制作了一个自定义磁贴,在本地运行应用程序时可以正常工作。 将应用程序部署到我们的SAPUI5 ABAP存储库并尝试通过我们的管理门户添加自定义磁贴之后,controller.js文件指向一个缓存的位置并引发404错误。 tile的chip.xml文件已注册,并且显然可以正常工作,因为它为我提供了选择tile类型的选项。 我在启动板中看到的错误如下所示:

是否有人遇到过类似的问题,其中自定义磁贴的controller.js文件正试图从缓存的位置而不是适当的存储库加载?

我尝试了几种组合,以使view.xml文件指向controller.js的相应URL,但是启动板继续寻找缓存的副本。 请查看下面突出显示的错误-我们建议您:

view.xml文件是从正确的路径加载的:

从该路径加载controller.js文件

我的文件夹结构如下:

以下是view.xml,controller.js,index.html和chip.xml的编码:

View.xml

 
 
 
 
 <内容>
 
 
 
 
 
 
 
 
 
 
 
 
 

Controller.js

 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";
/*全局jQuery,哈希器*/


 return Controller.extend(" CustomTile.controller.CustomTile",{


//如果在管理员模式下按下图块,则触发以显示配置UI
 onPress:function(){
 var oView = this.getView(),
 oViewData = oView.getViewData(),
 oModel = oView.getModel(),
 sTargetUrl = oModel.getProperty("/img/nav/navigation_target_url"),
 oTileApi = oViewData.chip;
 如果(oTileApi.configurationUi.isEnabled()){
 oTileApi.configurationUi.display();
 }否则,如果(sTargetUrl){
 如果(sTargetUrl [0] ==="#"){
 hasher.setHash(sTargetUrl);
 }其他{
 window.open(sTargetUrl," _blank");
 }
 }
 }
 });
 });
 

index.html

 <!DOCTYPE HTML>
 


 <头>
 
 


  CustomTile 


 


 


 <脚本>
 sap.ui.getCore()。attachInit(function(){
 新的sap.m.Shell({
 应用:新的sap.ui.core.ComponentContainer({
 高度:" 100%",
 名称:" CustomTile"
 })
 })。placeAt(" content");
 });
 
 


 
 


 
 

chip.xml

 <?xml version =" 1.0" encoding =" UTF-8"?>
 <!-版权所有(c)2009-2014 SAP SE,保留所有权利->
 
 <实现>
 
  ./
  view/CustomTile.view.xml 
 
 
 <外观>
 我的瓷砖
 自定义图块
 
 <合约>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
pic1.jpg (12.5 kb)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我制作了一个自定义磁贴,在本地运行应用程序时可以正常工作。 将应用程序部署到我们的SAPUI5 ABAP存储库并尝试通过我们的管理门户添加自定义磁贴之后,controller.js文件指向一个缓存的位置并引发404错误。 tile的chip.xml文件已注册,并且显然可以正常工作,因为它为我提供了选择tile类型的选项。 我在启动板中看到的错误如下所示:

是否有人遇到过类似的问题,其中自定义磁贴的controller.js文件正试图从缓存的位置而不是适当的存储库加载?

我尝试了几种组合,以使view.xml文件指向controller.js的相应URL,但是启动板继续寻找缓存的副本。 请查看下面突出显示的错误-我们建议您:

view.xml文件是从正确的路径加载的:

从该路径加载controller.js文件

我的文件夹结构如下:

以下是view.xml,controller.js,index.html和chip.xml的编码:

View.xml

 
 
 
 
 <内容>
 
 
 
 
 
 
 
 
 
 
 
 
 

Controller.js

 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";
/*全局jQuery,哈希器*/


 return Controller.extend(" CustomTile.controller.CustomTile",{


//如果在管理员模式下按下图块,则触发以显示配置UI
 onPress:function(){
 var oView = this.getView(),
 oViewData = oView.getViewData(),
 oModel = oView.getModel(),
 sTargetUrl = oModel.getProperty("/img/nav/navigation_target_url"),
 oTileApi = oViewData.chip;
 如果(oTileApi.configurationUi.isEnabled()){
 oTileApi.configurationUi.display();
 }否则,如果(sTargetUrl){
 如果(sTargetUrl [0] ==="#"){
 hasher.setHash(sTargetUrl);
 }其他{
 window.open(sTargetUrl," _blank");
 }
 }
 }
 });
 });
 

index.html

 <!DOCTYPE HTML>
 


 <头>
 
 


  CustomTile 


 


 


 <脚本>
 sap.ui.getCore()。attachInit(function(){
 新的sap.m.Shell({
 应用:新的sap.ui.core.ComponentContainer({
 高度:" 100%",
 名称:" CustomTile"
 })
 })。placeAt(" content");
 });
 
 


 
 


 
 

chip.xml

 <?xml version =" 1.0" encoding =" UTF-8"?>
 <!-版权所有(c)2009-2014 SAP SE,保留所有权利->
 
 <实现>
 
  ./
  view/CustomTile.view.xml 
 
 
 <外观>
 我的瓷砖
 自定义图块
 
 <合约>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
pic1.jpg (12.5 kb)
付费偷看设置
发送
3条回答
DafaDDDa
1楼 · 2020-09-14 10:51.采纳回答

要回答该问题-部署到Fiori Launchpad时,必须从视图和控制器文件中删除应用程序名称。 在原始帖子的代码中,您将替换以下内容:

原始视图和控制器:
controllerName =" CustomTile.controller.CustomTile"
Controller.extend(" CustomTile.controller.CustomTile"

新视图和控制器:
controllerName =" controller.CustomTile"

Controller.extend(" controller.CustomTile"

d56caomao
2楼-- · 2020-09-14 10:43

嗨,

我也面临着同样的问题,但是正如您在此处建议的那样,即使从视图和控制器中删除了应用程序名称后,它也会引发相同的错误,您能否在此详细说明如何解决此问题?

谢谢,Prem

空代码
3楼-- · 2020-09-14 10:47

我也遇到了这个问题。 当前的答案对我不起作用。 您能解决吗?

一周热门 更多>