Javascript TypeError:对象[Object Array]没有方法';getProperty';
我是一个刚开始发帖的人,所以请温柔一点 我使用Breeze作为“热毛巾”SPA堆栈的一部分,并从用PHP编写的自定义WebApi端点检索数据。这不是一个完整的实现,我只是写了足够的东西来满足我的需要 我的端点正在生成的元数据如下所示:Javascript TypeError:对象[Object Array]没有方法';getProperty';,javascript,php,breeze,Javascript,Php,Breeze,我是一个刚开始发帖的人,所以请温柔一点 我使用Breeze作为“热毛巾”SPA堆栈的一部分,并从用PHP编写的自定义WebApi端点检索数据。这不是一个完整的实现,我只是写了足够的东西来满足我的需要 我的端点正在生成的元数据如下所示: { "shortName": "Project", "namespace": "WebApi.ORM.Cartesius", "autoGeneratedKeyType": "Identity",
{
"shortName": "Project",
"namespace": "WebApi.ORM.Cartesius",
"autoGeneratedKeyType": "Identity",
"defaultResourceName": "Project",
"dataProperties": [
{
"name": "id",
"isPartOfKey": true,
"isNullable": false,
"dataType": "Int32"
},
{
"name": "title",
"isNullable": false,
"maxLength": 256,
"dataType": "String"
},
{
"name": "date",
"isNullable": false,
"dataType": "DateTime"
},
{
"name": "review_date",
"isNullable": true,
"dataType": "DateTime"
},
{
"name": "summary",
"isNullable": true,
"dataType": "String"
}
],
"navigationProperties": [
{
"name": "Team",
"entityTypeName": "Team:#WebApi.ORM.Cartesius",
"isScalar": true,
"associationName": "team_project_id_fkey",
"invForeignKeyNames": [
"project_id"
]
},
{
"name": "ProjectAuthor",
"entityTypeName": "ProjectAuthor:#WebApi.ORM.Cartesius",
"isScalar": true,
"associationName": "project_author_project_id_fkey",
"invForeignKeyNames": [
"project_id"
]
},
{
"name": "Itinerary",
"entityTypeName": "Itinerary:#WebApi.ORM.Cartesius",
"isScalar": true,
"associationName": "itinerary_project_id_fkey",
"invForeignKeyNames": [
"project_id"
]
},
在我尝试展开查询之前,一切正常:
var query = new breeze.EntityQuery()
.from("Project")
.where("id","eq",project.id)
.expand("ProjectAuthor");
此查询从my endpoint返回以下内容:
[
{
"$id": 1,
"$type": "WebApi.ORM.Cartesius.Project",
"id": 2,
"title": "teat",
"date": "2013-11-04 14:00:00+07",
"review_date": null,
"summary": null,
"ProjectAuthor": [
{
"$id": 2,
"$type": "WebApi.ORM.Cartesius.ProjectAuthor",
"id": 1,
"account_id": 1,
"project_id": 2,
"Project": [
{
"$ref": 1
}
]
},
{
"$id": 3,
"$type": "WebApi.ORM.Cartesius.ProjectAuthor",
"id": 3,
"account_id": 2,
"project_id": 2,
"Project": [
{
"$ref": 1
}
]
}
]
}
]
然后微风把它吹得喘不过气来:
TypeError: Object [object Array] has no method 'getProperty'
调试指向Breeze中的第5059行,其中它尝试在一个实体数组而不是单个实体上获取属性。我假设这与导航属性是否设置为标量有关,但切换它们没有任何区别
我肯定我做错了什么,但我不知道是什么,我有点撞到了墙。我已经从头到尾阅读了这些文档,并且正在尽我所能最好地实现这一点,但我可能有点困惑
如果我没有说清楚或提供足够的信息,请提前感谢您的帮助和道歉。我想您的问题在元数据中
"name": "ProjectAuthor",
"entityTypeName": "ProjectAuthor:#WebApi.ORM.Cartesius",
"isScalar": true,
"associationName": "project_author_project_id_fkey",
"invForeignKeyNames": [
"project_id"
]
},
在nav属性Project->ProjectAuthor上,告诉它它是标量,但不在数据集中。。
“项目作者”:[
{
我也遇到过这个问题。99%的时间是元数据问题,如果没有,那么就开始分割元数据,直到隔离错误。尽管我确信这就是问题所在。你需要在反向导航中使用hasMany和isScalar