【问题标题】:How can I use complex binding to get keys displayed rather then values from key value pairs in view.xml如何使用复杂绑定来显示键而不是 view.xml 中键值对中的值
【发布时间】:2020-03-06 08:57:03
【问题描述】:

我知道我可以使用复杂绑定来使用模型中的键来显示值。这是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} 来显示键。

【问题讨论】:

  • JSON 对象以键/值对的形式编写,每个值仅使用key 标识。根据 UI5 绑定,我们需要键来绑定值。您可以添加一个额外的key,例如labelText,其中包含key 文本。
  • 请分享您的 JSON 对象
  • @inizio 是的,这很酷,就像一个不错的 hack .. 会很快尝试这个,如果这能解决我的问题,请告诉你......非常感谢......

标签: javascript xml data-binding sapui5


【解决方案1】:

您可以通过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}})

将 aItems 保存到 JSONModel 并绑定到该模型。

【讨论】:

    【解决方案2】:

    我为解决我的问题所做的是使用我的 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);
                 }
       }
    

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 2021-11-20
      • 2021-12-14
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 2018-07-20
      相关资源
      最近更新 更多