如果标志为true,则对列进行排序orderby angularJS
默认情况下,我有一个在如果标志为true,则对列进行排序orderby angularJS,angularjs,Angularjs,默认情况下,我有一个在name列上排序的表。我想根据isSortingRequired标志对其进行增强,使排序行为可选。如何在模板中提供条件orderby子句。您可以使用三元运算符,如 orderBy:(isSortingRequired?'CONDITION_FOR_SORT_REQUIRED':'CONDITION_FOR_SORT_NOT_REQUIRED') 您可以使用三元运算符,如 orderBy:(isSortingRequired?'CONDITION_FOR_SORT_REQU
name
列上排序的表。我想根据isSortingRequired
标志对其进行增强,使排序行为可选。如何在模板中提供条件orderby
子句。您可以使用三元运算符,如
orderBy:(isSortingRequired?'CONDITION_FOR_SORT_REQUIRED':'CONDITION_FOR_SORT_NOT_REQUIRED')
您可以使用三元运算符,如
orderBy:(isSortingRequired?'CONDITION_FOR_SORT_REQUIRED':'CONDITION_FOR_SORT_NOT_REQUIRED')
当'
被传递到orderby
过滤器时,它会尝试按对象的hashkey
排序,这可能会按照记录的顺序产生问题。解决方案是使用下面定义的自定义过滤器,如果标志为true,则使用内置的orderby过滤器
.filter('customOrder',function($filter)
{
return function(friend, prediate,isSortRequired){
if(!isSortRequired)
return friend;
else
{
var result = $filter("orderBy")(friend, prediate);
return result;
}
}
});
可以看到解决方案。这解决了我的问题
当'
被传递到orderby
过滤器时,它会尝试按对象的hashkey
排序,这可能会按照记录的顺序产生问题。解决方案是使用下面定义的自定义过滤器,如果标志为true,则使用内置的orderby过滤器
.filter('customOrder',function($filter)
{
return function(friend, prediate,isSortRequired){
if(!isSortRequired)
return friend;
else
{
var result = $filter("orderBy")(friend, prediate);
return result;
}
}
});
可以看到解决方案。这解决了我的问题。在演示plnkr中,我刚刚根据静态标志显示。通过更改其值来检查输出。如果行数为10,如果有10条以上的记录,且标志为false,则此方法可以正常工作。它只会给我一个加扰顺序。在演示plnkr中的此插件中,我刚刚基于静态标志显示。通过更改其值来检查输出。如果行数为10,如果有10条以上的记录,且标志为false,则此方法可以正常工作。它只会给我一个加扰顺序。在本plunker中演示