Angular ng-repeat orderBy multiple fields as one field
Angular ng-repeat orderBy multiple fields as one field
我的问题与orderBy multiple fields in Angular不同。
我的数组有对象,而有些对象有
{
estimatedStartDate : "..."
}
有些人有:
{
actualStartDate : "..."
}
那么有没有一种方法可以同时考虑这两个字段。
orderBy:['estimatedStartDate','actualStartDate']
^ 这行不通。
这是一个fiddle:http://jsfiddle.net/g201tudg/1/
所以假设这两个字段相同然后排序?
将这样的功能添加到您的控制器:
$scope.sortByEitherDate = function(row) {
if (row.actualStartDate) {
return row.actualStartDate;
}
return row.estimatedStartDate;
}
然后按 orderBy:sortByEitherDate
订购
工作fiddle:http://jsfiddle.net/g201tudg/4/
试试这个,看看它是否有效。只是通过这个线程,看起来他们正在通过自定义过滤器根据索引进行排序。
您可以使用自定义 OrderBy 排序:
<tr ng-repeat="contact in contacts | orderBy:randomSort">
$scope.randomSort = function(contact) {
// your condition
};
您可以编写自己的自定义订单功能。它需要一个参数 - 你的卡 - 和 return 这些字段中的任何一个。
JS:
$scope.sort = function(card) {
return card.actualStartDate !== undefined ? card.actualStartDate : card.estimatedStartDate;
}
HTML:
<div ng-repeat="card in myCards | orderBy:sort">...</div>
根据我的经验,Angular ngRepeat order 不喜欢未定义的值,因此将缺少的成员添加为 null 可以解决您的问题。
对了,不用提"doc"。写成员就够了
另外,写自定义的排序方法,对客户端资源消耗很大
这是编辑后的 fiddle,它可以正常工作:
http://jsfiddle.net/g201tudg/2/
我的问题与orderBy multiple fields in Angular不同。
我的数组有对象,而有些对象有
{
estimatedStartDate : "..."
}
有些人有:
{
actualStartDate : "..."
}
那么有没有一种方法可以同时考虑这两个字段。
orderBy:['estimatedStartDate','actualStartDate']
^ 这行不通。
这是一个fiddle:http://jsfiddle.net/g201tudg/1/
所以假设这两个字段相同然后排序?
将这样的功能添加到您的控制器:
$scope.sortByEitherDate = function(row) {
if (row.actualStartDate) {
return row.actualStartDate;
}
return row.estimatedStartDate;
}
然后按 orderBy:sortByEitherDate
订购工作fiddle:http://jsfiddle.net/g201tudg/4/
试试这个,看看它是否有效。只是通过这个线程,看起来他们正在通过自定义过滤器根据索引进行排序。
您可以使用自定义 OrderBy 排序:
<tr ng-repeat="contact in contacts | orderBy:randomSort">
$scope.randomSort = function(contact) {
// your condition
};
您可以编写自己的自定义订单功能。它需要一个参数 - 你的卡 - 和 return 这些字段中的任何一个。
JS:
$scope.sort = function(card) {
return card.actualStartDate !== undefined ? card.actualStartDate : card.estimatedStartDate;
}
HTML:
<div ng-repeat="card in myCards | orderBy:sort">...</div>
根据我的经验,Angular ngRepeat order 不喜欢未定义的值,因此将缺少的成员添加为 null 可以解决您的问题。
对了,不用提"doc"。写成员就够了
另外,写自定义的排序方法,对客户端资源消耗很大
这是编辑后的 fiddle,它可以正常工作:http://jsfiddle.net/g201tudg/2/