Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 如何在视图控制器中动态更改UI5中的标准应用程序标签文本_Sapui5_Abap_Sap Fiori - Fatal编程技术网

Sapui5 如何在视图控制器中动态更改UI5中的标准应用程序标签文本

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

我正在扩展来自ODATA的SAP标准HCM应用程序和标准字段(STRAS)标签是“门牌号和街道”,但我希望在运行时在UI5 View controller中更改并分配新标签文本“地址行1”,而不是复制标准ODATA并为此小更改创建自定义ODATA

注:标签在标准应用中不通过i18n型号绑定

<!-- 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"); 
}