Sapui5 如何在视图控制器中动态更改UI5中的标准应用程序标签文本
我正在扩展来自ODATA的SAP标准HCM应用程序和标准字段(STRAS)标签是“门牌号和街道”,但我希望在运行时在UI5 View controller中更改并分配新标签文本“地址行1”,而不是复制标准ODATA并为此小更改创建自定义ODATA 注:标签在标准应用中不通过i18n型号绑定Sapui5 如何在视图控制器中动态更改UI5中的标准应用程序标签文本,sapui5,abap,sap-fiori,Sapui5,Abap,Sap Fiori,我正在扩展来自ODATA的SAP标准HCM应用程序和标准字段(STRAS)标签是“门牌号和街道”,但我希望在运行时在UI5 View controller中更改并分配新标签文本“地址行1”,而不是复制标准ODATA并为此小更改创建自定义ODATA 注:标签在标准应用中不通过i18n型号绑定 <!-- Street / STRAS --> <Label text="{/#Address10/Street/@sap:label}" id="lblStr
<!-- Street / STRAS -->
<Label text="{/#Address10/Street/@sap:label}" id="lblStreet" labelFor="txtStreet" visible="{FieldStates>/STRAS/Visible}"/>
<Text id="txtStreet" text="{Street}" visible="{FieldStates>/STRAS/Visible}"/>
任何帮助都将不胜感激
关于,您可以尝试实现一个 您只需在
“sap.ui5”
对象内的manifest.json文件中添加以下代码:
"extends": {
"component": "Standard App Namespace",
"extensions": {
"sap.ui.controllerExtensions": {
"standard.namespace.controller.ControllerName": {
"controllerName": "my.namespace.ControllerNameExt"
}
}
}
}
只需将名称空间替换为适合您的用例的名称空间
在控制器实现中,可以添加():
看起来字段是硬编码的。那么,为什么在XML中使用OData标签而不是“地址行1”作为标签呢
谢谢Alex的回复……实际上这是标准应用程序视图,我没有任何选项可以在扩展应用程序中更改标准视图XML,也不想因为这个小更改而更改ODATA级别的标签(如上所述)。这就是为什么我只能在运行时更改标签“地址行1”,而我不知道如何在运行时更改此标签的原因?感谢Jorge的回复,我尝试了上述视图修改,但无效,如文档中所述,上述修改仅限于视图可见属性,还有其他建议吗?@AbdulQayyum,我刚刚编辑了我的答案,这应该对你有用。嗨,Jorge,我已经尝试了下面的代码,但它不起作用。onbeforeredering:function(oEvent){var lbltxt=this.getView().byId(“lblStreet”).getText();if(lbltxt!==null){var lblnewtext=“地址行1”;this.setView().byId(“lblStreet”).setText(lblnewtext);}@AbdulQayyum是否可以创建本地注释文件并将其应用于扩展项目中?如果是,请通过注释将OData标签替换为i18n文本
onInit: function() {
this.getView().byId("lblStreet").setText("my new label");
}