【发布时间】:2016-03-08 06:49:37
【问题描述】:
在 AngularApp 中,我通过 OData 查询从 WebAPI 获取数据。
所有结果都有一个日期和一个 int 状态码。状态码可以是 1、2、3 或 4。
我想对我的结果进行排序,因此所有状态码为 1 的结果都位于列表顶部。代码 2、3 和 4 的其余结果按附加到它们的数据排序,而不是状态码。
可能吗?
这是我现在的代码。它只是按日期排序,没有别的。
return Products.query({ $orderby: 'Date' });
【问题讨论】:
-
您可以控制 OData 服务吗?换句话说,您可以向服务添加新行为吗?
-
是的,我可以改变它。你在想什么?
-
您不能将任意排序函数传递给
$orderby。无论如何,IMO 最好定义一个 OData function 来执行排序,而不是要求客户端提供一个复杂的$orderby子句。对绑定到Products实体集的函数的请求看起来像GET http://host/Products/ServiceNamespace.CustomOrderBy。 -
我在下面为您提供了一个客户端解决方案。
标签: javascript angularjs odata