我有一个使用breeze数据的AngularJS应用程序。后端是OData v4。
我的元数据存储中定义了Customer
实体和Address
实体。
API将Address
的默认端点定义为path/api/Customers({id})/Addresses
我可以使用$expand
查询特定客户并获取他/她的地址。
但是,如果我为该客户编辑或添加新的Address
(例如,客户#42),然后调用entityManager.saveChanges()
,我需要POST / PATCH请求转到path/api/Customers(42)/Addresses
}。
有没有办法让我的Address
实体接受defaultResourceName
属性中的参数?
答案 0 :(得分:1)
这里有几个选项 - 一个是调用saveChanges并传入一些自定义saveOptions -
http://www.getbreezenow.com/documentation/saving-changes
有了这个,你可以使用
var so = new SaveOptions({ resourceName: entityId + "/Addresses" });
// null = 'all-pending-changes'; saveOptions is the 2nd parameter
myEntityManager.SaveChanges(addressEntities, so );
您可能需要根据需要进行配置。
另一种可能性是使用breeze.ajaxPost在客户端上自己创建自定义saveChanges方法。这需要更多的工作量,但允许您进行额外的自定义。