Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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
Javascript 在UI5中绑定嵌套数组_Javascript_Sapui5 - Fatal编程技术网

Javascript 在UI5中绑定嵌套数组

Javascript 在UI5中绑定嵌套数组,javascript,sapui5,Javascript,Sapui5,我正在尝试将嵌套数组绑定到SAPUI5表。我的JSON模型: { “部门”:[ { “ID”:“1”, “名称”:“1”, “雇员”:[ { “ID”:“100001234”, “姓氏”:“汤姆” }, { “ID”:“100001234”, “姓氏”:“杰瑞”, } ] }, { “ID”:“2”, “名称”:“2”, “雇员”:[ { “ID”:“100001234”, “姓氏”:“Бзззззззззззз1079 }, { “ID”:“100001234”, “姓氏”:“Бззззззз

我正在尝试将嵌套数组绑定到SAPUI5表。我的JSON模型:

{
“部门”:[
{
“ID”:“1”,
“名称”:“1”,
“雇员”:[
{
“ID”:“100001234”,
“姓氏”:“汤姆”
},
{
“ID”:“100001234”,
“姓氏”:“杰瑞”,
}
]
},
{
“ID”:“2”,
“名称”:“2”,
“雇员”:[
{
“ID”:“100001234”,
“姓氏”:“Бзззззззззззз1079
},
{
“ID”:“100001234”,
“姓氏”:“Бзззззззззззз1079
}
]
}
]
}
现在我正在使用SAPUI5表



我使用上面的数据绑定来显示表中每一行的姓氏。但是它没有显示任何内容。

正如Jonas在评论中所说,如果您想创建一个包含所有部门的所有员工的表,您需要转换JSON模型中的数据(并将其设置回模型中)

const departments=jsonModel.getProperty(“/departments”);
constallemployees=departments.flatMap(department=>department.Employees);
jsonModel.setProperty(“/AllEmployees”,AllEmployees);
在绑定中,绑定到
oDataItem>/AllEmployees
。见JSBin-

或者,如果只需要一个特定的部门,可以通过在绑定中指定数组的索引,将表绑定到特定部门的员工。我认为应该是
oDataItem>/Departments/0/Employees

sap.ui.define([
“sap/ui/model/json/JSONModel”
],函数(JSONModel){
//从HTML页面中读取视图(这不是有效的需要)
const view=sap.ui.xmlview(“main”{
viewContent:jQuery(“#main”).html()
});
//创建模型
const model=新的JSONModel({
“部门”:[
{
“ID”:“1”,
“名称”:“1”,
“雇员”:[
{
“ID”:“100001234”,
“姓氏”:“汤姆”
},
{
“ID”:“100001234”,
“姓氏”:“杰瑞”,
}
]
},
{
“ID”:“2”,
“名称”:“2”,
“雇员”:[
{
“ID”:“100001234”,
“姓氏”:“Бзззззззззззз1079
},
{
“ID”:“100001234”,
“姓氏”:“Бзззззззззззз1079
}
]
}
]});
//将表的绑定更改为“/AllEmployees”,以使用以下代码:
const allEmps=model.getProperty(“/Departments”).flatMap(dep=>dep.Employees)
model.setProperty(“/AllEmployees”,allEmps)
//配置模型
view.setModel(模型“oDataItem”)
view.placeAt(“内容”)
});

JS-Bin
/部门/员工

表格应从
部门
列表中选择哪个
员工列表
?桌子不可能知道

但是,用户知道他们希望看到哪个部门的哪些员工。让他们先选择一个部门,然后您可以将相应的员工列表绑定到表中


即,在您的案例中,需要一个树状控件或一组两个列表控件(一个用于部门,一个用于员工列表)。下面是一个示例:

您需要一个
sap.m.Tree
sap.ui.table.TreeTable
,或者两个列表控件的组合,以便相应地显示数据。看见