如何使用复杂绑定来获取显示的键而不是 view.xml 中的键值对中的值

How can I use complex binding to get keys displayed rather then values from key value pairs in view.xml

我知道我可以使用复杂绑定来使用模型中的键显示值。这是 json 对象。但是我怎么能在不知道有多少密钥的情况下打印所有密钥呢?

我尝试在 google 中搜索解决方案,但没有找到类似的解决方案。

<f:Form id="SimpleFormDisplay354" editable="true">
   <f:toolbar>
      <OverflowToolbar design="Transparent">
         <Title text="Details" level="H2"/>
         <ToolbarSpacer/>
         <Button icon="sap-icon://decline" press="handleSideContentHide"/>
      </OverflowToolbar>
   </f:toolbar>
   <f:layout>
      <f:ResponsiveGridLayout/>
   </f:layout>
   <f:FormContainer>
      <f:formElements items="{path: '/'}">
         <f:FormElement label="{label}">
            <f:fields><Input placeholder="Send Text" type="Text" width="50%"/></f:fields>
         </f:FormElement>
      </f:formElements>
   </f:FormContainer>
</f:Form>

我想知道我应该写什么来代替 {label} 来显示键。

您可以通过 Object.keys(JsonObject).

获取 JSON 对象的键
const json = {"name": "Bob", "age": "35"};
const aKeys = Object.keys(json); // => aKeys = ["name", "age"]
const aItems= aKeys.map(key => {return {label: key}})

将项目保存到 JSON模型并绑定到它。

我为解决问题所做的是使用 controller.js.

在 formContainer 中动态添加元素
for (var key in oValues) {

     if(oValues.hasOwnProperty(key)){
           var oFormElement = new sap.ui.layout.form.FormElement().addField(new sap.m.Input({value:oValues[key]}));
           oFormElement.setLabel(key);                                                               
           this.byId("id_of_FormContainerinXML").addFormElement(oFormElement);
             }
   }