使用Breezejs生成查询字符串

时间:2014-12-15 16:25:01

标签: javascript odata breeze

我有一个自定义的Odata端点,它通过正文中的帖子而不是查询字符串进行过滤。目前,所有查询都是手动编码,然后输入到帖子中。 我想知道是否有人知道我是否可以使用Breezejs来创建我需要的查询。

干杯

1 个答案:

答案 0 :(得分:0)

根据" OData AJAX" Controlling AJAX中的部分您需要更改data.js的副本,以便使用POST代替GET。

如果您不关心轻松加载数据并且只想使用EntityQuery语法来构建查询,您可以尝试获取breeze odata uriBuilder的实例并调用buildUri方法来转换EntityQuery到一个odata uri。假设有效,那么抓住uri的查询字符串组件就可以在POST主体中使用了。

var interfaceRegistry = breeze.config.interfaceRegistry,
    uriBuilderInterface = interfaceRegistry.uriBuilder,
    uriBuilderCtor = uriBuilderInterface.getImpl('odata').ctor,
    uriBuilder = new uriBuilderCtor(),
    uri = uriBuilder.buildUri(entityQuery, metadataStore);

可能有一种更好/更简单的方法可以做到这一点......也许是通过从微风odata dataService实例中获取uriBuilder。我不认为这是微风支持/记录的公共API的一部分,但听起来它会在user voice网站上发布一个很好的功能建议。