Javascript TypeError:对象[Object Array]没有方法';getProperty';

Javascript TypeError:对象[Object Array]没有方法';getProperty';,javascript,php,breeze,Javascript,Php,Breeze,我是一个刚开始发帖的人,所以请温柔一点 我使用Breeze作为“热毛巾”SPA堆栈的一部分,并从用PHP编写的自定义WebApi端点检索数据。这不是一个完整的实现,我只是写了足够的东西来满足我的需要 我的端点正在生成的元数据如下所示: { "shortName": "Project", "namespace": "WebApi.ORM.Cartesius", "autoGeneratedKeyType": "Identity",

我是一个刚开始发帖的人,所以请温柔一点

我使用Breeze作为“热毛巾”SPA堆栈的一部分,并从用PHP编写的自定义WebApi端点检索数据。这不是一个完整的实现,我只是写了足够的东西来满足我的需要

我的端点正在生成的元数据如下所示:

 {
        "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