Ниже критерии сортировки от А до Я: 1) специальные символы 2) номер 3) алфавитПользовательской сортировка с использованием OrderBy директивы угловых
For example:-
$scope.cards = ["815 BRAZOS ST AUSTIN TX 78701","7745 CHEVY CHASE DR AUSTIN TX 78752","701 BRAZOS ST AUSTIN TX 78701","555 ROUND ROCK WEST DR ROUND ROCK TX 78681","400 W 15TH ST AUSTIN TX 78701"]
Expected result after sorting:-
400 W 15TH ST AUSTIN TX 78701
555 ROUND ROCK WEST DR ROUND ROCK TX 78681
701 BRAZOS ST AUSTIN TX 78701
815 BRAZOS ST AUSTIN TX 78701
7745 CHEVY CHASE DR AUSTIN TX 78752
Я хочу достичь этого с помощью Углового фильтра orderBy
. Как и в пользовательской функции сортировки JS, мы получили два аргумента и, манипулируя этим, мы можем вернуть> 0, < 0 и 0 для достижения пользовательской сортировки.
Моя попытка
<div ng-controller="MyCtrl">
<ul ng-repeat="card in cards | orderBy:myValueFunction">
<li>{{card}}</li>
</ul>
</div>
JS
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.cards = ["815 BRAZOS ST AUSTIN TX 78701","7745 CHEVY CHASE DR AUSTIN TX 78752","701 BRAZOS ST AUSTIN TX 78701","555 ROUND ROCK WEST DR ROUND ROCK TX 78681","400 W 15TH ST AUSTIN TX 78701"]
$scope.myValueFunction = function(card,card1) {
console.log(card);
console.log(card1);
return card;
}
}
Благодаря
Но как я могу сравнить? Как и в стандартном javascript-сортировке, мы получили два аргумента для сравнения, но в угловом мы получаем только текущее значение. см. обновленную скрипту http://jsfiddle.net/zjvsu/534/ –
, используя стандартный фильтр 'orderBy', который вы не можете. Но вы можете создать собственный фильтр, который будет создавать отсортированный массив. –
Спасибо, пожалуйста, отредактируйте свой ответ так или иначе, чтобы я мог удалить свой минус. –