Javascript &引用;this.getService不是一个函数";动态更改SAP Fiori标题时

Javascript &引用;this.getService不是一个函数";动态更改SAP Fiori标题时,javascript,sapui5,sap-fiori,Javascript,Sapui5,Sap Fiori,我正在尝试动态更改SAP Fiori标题,即启动启动板后,单击我选择的应用程序后,应用程序的标题应根据我希望的内容进行更改。 我使用此文档页作为指南 在我的webapp/Component.js中,我有我的setAppTitle()方法,它应该为应用程序设置一个新的自定义标题,并从onAfterRendering()的methodwebapp/view/S2Custom.controller.js中调用 之所以我不能直接从webapp/Component.js的init()方法中调用setApp

我正在尝试动态更改SAP Fiori标题,即启动启动板后,单击我选择的应用程序后,应用程序的标题应根据我希望的内容进行更改。 我使用此文档页作为指南

在我的
webapp/Component.js
中,我有我的
setAppTitle()
方法,它应该为应用程序设置一个新的自定义标题,并从
onAfterRendering()的
method
webapp/view/S2Custom.controller.js
中调用

之所以我不能直接从
webapp/Component.js
init()
方法中调用
setAppTitle()
,是因为我从
webapp/i18n/i18n.properties
获取标题,而在
Component.js
init()
过程中,这些标题尚未“加载”

为了避免在
Component.js
中使用类似于
setTimeout(()=>this.setAppTitle(sTitle),6000)
的东西,我决定从
onAfterRendering()的
method
webapp/view/S2Custom.controller.js
中调用它

webapp/view/S2Custom.controller.js
onAfterRendering:函数(oEvent){
var sComponentId=sap.ui.core.Component.getowneriedFor(this.getView());
var oComponent=sap.ui.component(sComponentId);
var i18nModel=new sap.ui.model.resource.ResourceModel({
bundleName:“ui.s2p.srm.sc.blahblah.BlahBlahExtension.i18n.i18n”
});
var oResource=i18nModel.getResourceBundle();
var sTitle=oComponent.getModel(“appModel”).getProperty(“/sMode”)==“发件箱”?oResource.getText(“应用程序一”):oResource.getText(“应用程序二”);
this.getOwnerComponent().setAppTitle(缝合线);
},
webapp/Component.js
setAppTitle:函数(sText){
var-sTitle=sText;
console.log(“TEST:”,this.getService(“ShellUIService”);//错误!!!
试一试{
这个.getService(“ShellUIService”).then(函数(oService){
oService.setTitle(针迹);
},函数(oError){
jQuery.sap.log.error(“无法获取ShellUIService”);
});
}捕捉(错误){
log(“测试-错误:”,err);
}
},
setAppTitle()
方法中的问题-控制台显示错误:

this.getService不是一个函数

所以我进入了我的
manifest.json

“sap.ui5”:{
“_版本”:“1.2.0”,
“服务”:{
“ShellUIService”:{
“factoryName”:“sap.ushell.ui5service.ShellUIService”
}
},
“依赖项”:{
“MINUI5版本”:“1.28.5”,
“libs”:{}
},
我注意到Web IDE显示的属性“services”在包含
“services”的行上是不允许的错误:{

你能告诉我是什么导致了这个问题吗?我已经尝试在
Component.js
init()
方法中单独调用
this.getService(“ShellUIService”)
,不幸的是同样的错误

this.getService不是一个函数


您必须使用旧的UI5版本。仅从
1.37.0
起提供:

在应用程序中按Ctrl+Left Alt+Shift+p可以检查当前版本


关于Web IDE错误消息

我注意到Web IDE显示的属性“services”在包含
“services”的行上是不允许的错误:{

  • 如果可能,请将UI5资源更新到以下位置之一
  • 除了根
    \u版本
    ,删除
    sap.app
    sap.ui5
    等中的所有其他
    \u版本
  • 根据下表将root
    \u version
    设置为高于
    1.3.0
    的值
  • 重新加载WebIDE