我一直在尝试使用breeze与第三方RESTful API - API需要两种类型的参数 - 像单个实体的深度链接 - 如localhost / request / 5(即id = 5的请求)和使用JSON编码的参数化查询在URL中(由微风转换而没有问题)。
主要问题是使用URL轻松创建请求,例如: 本地主机/请求/ {ID}
不是JSON编码GET,而是使用breeze查询" withParameters({workorderid:id})"
问题的第二部分是使用如下语法:
var query = breeze.EntityQuery
.from('request')
.withParameters(parameters)
.expand('requestDetails');
查询两个实体 - 主要 - 请求 - 和次要 - 请求详细信息(在访问时查询次要对象的值)。
结果应该与此图像相似:
http://postimg.org/image/prurk75ol/
我的模型是用两个实体手工定义的:
metadataStore.addEntityType({
shortName: "request",
namespace: "servicedesk",
dataProperties: {
workorderid: {
dataType: DT.Identity,
isPartOfKey: true
},
ignorerequest: {
dataType: DT.Boolean
}
},
navigationProperties: {
requestDetails: {
entityTypeName: "requestDetails:#servicedesk",
isScalar: true,
associationName: "request_requestDetails",
foreignKeyNames: ["workorderid"]
}
}
});
metadataStore.addEntityType({
shortName: "requestDetails",
namespace: "servicedesk",
dataProperties: {
workorderid: {
dataType: DT.Identity,
isPartOfKey: true
},
group: {
dataType: DT.String
},
description: {
dataType: DT.String
}
},
navigationProperties: {
request: {
entityTypeName: "request:#servicedesk",
isScalar: true,
associationName: "requestDetails_request",
foreignKeyNames: ["workorderid"]
}
}

我找到了这样的例子:https://github.com/Breeze/breeze.js.labs/blob/master/breeze.ajaxrestinterceptor.js,看起来我可以通过拦截ajax调用来改变url生成,这可以用于angular.breeze适配器吗?
答案 0 :(得分:0)
我不完全理解你的问题。您遇到什么问题?请编辑您的答案,以便我们提供帮助。
但我确实看到了元数据问题的内容以及request
类型requestDetails
导航属性的定义。属性名称和语义都表明应该返回一个集合,但是您已将其定义为标量。
requestDetails: {
entityTypeName: "requestDetails:#servicedesk",
isScalar: true, // <-- HUH?
associationName: "request_requestDetails",
foreignKeyNames: ["workorderid"]
}
我想你想要isScalar: false,