Sapui5 如何在XML中绑定嵌套的JSON数据

Sapui5 如何在XML中绑定嵌套的JSON数据,sapui5,Sapui5,我想将JSON数据绑定到我已尝试过的视图,如下所示: XML: 我在视图中有一个选择框,我想在视图页面中将员工姓名显示为下拉列表。如何绑定此XML。请提前感谢好的,您正在将视图中的模型设置为未命名模型。 因此,正确的绑定是: <m:Select id="Employee" items="{/Employee/EmployeeList}"> <c:Item key="{key}" text="{value}" /> <m:layoutData

我想将JSON数据绑定到我已尝试过的视图,如下所示:

XML:


我在视图中有一个选择框,我想在视图页面中将员工姓名显示为下拉列表。如何绑定此XML。请提前感谢

好的,您正在将视图中的模型设置为未命名模型。 因此,正确的绑定是:

<m:Select id="Employee" items="{/Employee/EmployeeList}">
    <c:Item key="{key}" text="{value}" />
         <m:layoutData>
                <l:GridData span="L2 M2 S2"/>
         </m:layoutData>
</m:Select>

存在多个错误假设:

items="{Employee>/EmployeeList}"
这里假设您有一个名为
Employee
的模型,该模型具有顶级属性
EmployeeList

<m:Select id="Employee" items="{/Employee/EmployeeList}">
    <c:Item key="{key}" text="{value}" />
    <m:layoutData>
        <l:GridData span="L2 M2 S2"/>
    </m:layoutData>
</m:Select>
事实上,您的模型没有名称,并且具有顶级属性
Employee

您可以选择:

  • 更改绑定
  • 改变你的模式
选项A:更改绑定: 如果您无法更改模型(因为它以这种方式来自后端),则这是您的选项

从绑定中删除模型名称(因为您的模型没有名称)。构建列表的正确路径。在xyz的顶部有一个属性
Employee
,它是一个具有属性
EmployeeList
的对象

<m:Select id="Employee" items="{/Employee/EmployeeList}">
    <c:Item key="{key}" text="{value}" />
    <m:layoutData>
        <l:GridData span="L2 M2 S2"/>
    </m:layoutData>
</m:Select>
将模型设置为视图时,还应提供绑定中所需的名称:

this.getView().setModel(oModel, "Employee");

在我看来,您忘记了绑定中模型名称后面的“>”。“{Employee/EmployeeList}”应该是“{Employee>/EmployeeList}”很抱歉,这是错误的,我保留了下拉列表值,但是在xml视图中没有显示下拉列表值。您是否在下拉列表中获得了正确数量的空项?是的,我得到了,但是这些值没有显示。这是因为您必须从模型中获取值。应该可以。我已经更改了绑定并得到了值。谢谢
 var xyz={   
   "EmployeeList":[  
      {  
        "key":"ram",
        "value":"ram"
      },
      {  
        "key":"raj",
        "value":"raj"
      },
      {  
        "key":"rani",
        "value":"rani"
      }
   ]
}
this.getView().setModel(oModel, "Employee");