javascript – orderBy:按用户选择的谓词和预定义的辅助排序

我试图首先按用户选择的谓词排序结果表,然后按预定义的辅助排序.

例如,我的ng-repeat设置如下:

<tr ng-repeat="line in model.resultList | orderBy:['-predicate', 'secondary_value'] | limitTo:model.pageSize:model.beginFrom">

…谓词在控制器范围内定义为$scope.predicate,并且存在根据用户选择更改此名称的逻辑.

我可以自行排序,只使用谓词(例如orderBy:predicate:reverse)

我是以错误的方式接近这个吗?是否允许在orderBy数组中使用$scope值?

最佳答案 只需删除引号即可.括号中没有引号的值应该是$scope中定义的变量

orderBy: [predicate, 'secondary_value']

请注意[-predicate]不是一个有效的表达式.如果谓词值应该是动态的(取自$scope),则变量$scope.predicate的值应该包含在反向开头的连字符的值,例如:$scope.predicate =’ – name’;

fiddle

点赞