Knockout.js Breezejs嵌套数组和结果绑定
使用breezejs和WEBAPI,我拉一个产品列表,每个产品都有一个组件列表 原始结果显示列表中第一个产品的3个组件的列表,而当我导航数据时。结果[0]。组件()在数组中仅获得一个组件 同样,当我浏览到/breeze/breeze/products时,我会看到每个产品的所有组件 我遗漏了什么?下面是我直接打电话给/breeze/breeze/products时得到的回复Knockout.js Breezejs嵌套数组和结果绑定,knockout.js,asp.net-web-api,breeze,Knockout.js,Asp.net Web Api,Breeze,使用breezejs和WEBAPI,我拉一个产品列表,每个产品都有一个组件列表 原始结果显示列表中第一个产品的3个组件的列表,而当我导航数据时。结果[0]。组件()在数组中仅获得一个组件 同样,当我浏览到/breeze/breeze/products时,我会看到每个产品的所有组件 我遗漏了什么?下面是我直接打电话给/breeze/breeze/products时得到的回复 { $id: "1", $type: "DD.Product, DD_Mod
{
$id: "1",
$type: "DD.Product, DD_Model",
Id: 1,
Name: "XXXX",
Components: [
{
$id: "2",
$type: "DD.Component, DD_Model",
Id: 1,
Name: "component1"
Product: {
$ref: "1"
},
},
{
$id: "3",
$type: "DD.Component, DD_Model",
Id: 2,
Name: "component2"
Product: {
$ref: "1"
},
},
{
$id: "4",
$type: "DD.Component, DD_Model",
Id: 11,
Name: "component3"
Product: {
$ref: "1"
},
}
],
},
对象元数据是通过/breeze/breeze/metadata从服务器检索的。在我看来,您使用的是两种不同的数据类型,并将它们放入组件数组中 我有一种感觉,当你拿回JSON时,它有那些额外的属性,但它们不会被映射到DD组件,因为它们属于GCDMS.Models.CalibrationEquipment类型,GCDMS_Model 编辑 无论出于何种目的,只要所显示的内容与返回的数据相匹配,您所做的看起来都是正确的,等等
我唯一能建议的是,在返回结果后,将其放入一个方法中,并调用它-console.log(entityManager.getEntities());查看是否有3个组件,并确保它们正确映射回。这只是复制和粘贴错误,已修复,从结构上看,所有组件都是相同的,没有什么不同。请显示QuerySucceed函数。另外,您是否正在使用服务器元数据或设置自己的元数据?添加了querySucceed函数,是的,我正在从服务器提取元数据。更新了答案,但没有显示明显的问题。您确定服务器上的模型设置正确吗?看起来很难。。。
{
$id: "1",
$type: "DD.Product, DD_Model",
Id: 1,
Name: "XXXX",
Components: [
{
$id: "2",
$type: "DD.Component, DD_Model",
Id: 1,
Name: "component1"
Product: {
$ref: "1"
},
},
{
$id: "3",
$type: "DD.Component, DD_Model",
Id: 2,
Name: "component2"
Product: {
$ref: "1"
},
},
{
$id: "4",
$type: "DD.Component, DD_Model",
Id: 11,
Name: "component3"
Product: {
$ref: "1"
},
}
],
},