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

时间:2014-11-11 10:53:03

标签: javascript angularjs breeze

我有一个使用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属性中的参数?

1 个答案:

答案 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方法。这需要更多的工作量,但允许您进行额外的自定义。