使用参数指定Breeze实体的默认资源名称

Specify a Breeze entity default resource name with a parameter

本文关键字:默认 资源 实体 Breeze 参数      更新时间:2023-09-26

我有一个AngularJS应用程序,它使用微风处理数据。后端是OData v4。

我在元数据存储中定义了Customer实体和Address实体。

API将Address的默认端点定义为path/api/Customers({id})/Addresses

我可以通过使用$expand查询特定客户并获得他/她的地址。

但是,如果我为该客户(例如,客户#42)编辑或添加一个新的Address,然后调用entityManager.saveChanges(),我需要POST/PATCH请求才能转到path/api/Customers(42)/Addresses

有什么方法可以配置我的Address实体以接受其defaultResourceName属性中的参数吗?

这里有几个选项-一个是调用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 );

您可能需要根据需要对此进行配置。

另一种可能性是使用微风.ajaxPost在客户端上自己创建一个自定义的saveChanges方法。这是更密集的工作,但允许您进行额外的自定义。