Angular js sorting with comparator function











up vote
1
down vote

favorite












I need to sort my products by title - it works without any problem with orderBy:'+title' inside my ng-repeat, but some of my products title contains numbers and I would like to move these products with numbers to the end.



I think I need to use this syntax now:



 <div ng-repeat="product in products | filter : search | orderBy: '+title:false:localeSensitiveComparator' ">


and add the comparator function, but have no idea how to do it (what condition should I use inside the function):



            $scope.localeSensitiveComparator = function(v1, v2) {

what condtion should I use here to detect and compare digits in the title?


// Compare numbers alphabetically, taking locale into account
return v1.value.localeCompare(v2.value);
};


Any help will be appreciated. Thanks.



I have this order now (with only orderBy: '+title')
https://prnt.sc/lk4no1



I would like this:
https://prnt.sc/lk4q2c










share|improve this question









New contributor




cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Show us example of your input and desired output
    – Slava Utesinov
    17 hours ago










  • I've added example screenshots.
    – cooper33
    17 hours ago

















up vote
1
down vote

favorite












I need to sort my products by title - it works without any problem with orderBy:'+title' inside my ng-repeat, but some of my products title contains numbers and I would like to move these products with numbers to the end.



I think I need to use this syntax now:



 <div ng-repeat="product in products | filter : search | orderBy: '+title:false:localeSensitiveComparator' ">


and add the comparator function, but have no idea how to do it (what condition should I use inside the function):



            $scope.localeSensitiveComparator = function(v1, v2) {

what condtion should I use here to detect and compare digits in the title?


// Compare numbers alphabetically, taking locale into account
return v1.value.localeCompare(v2.value);
};


Any help will be appreciated. Thanks.



I have this order now (with only orderBy: '+title')
https://prnt.sc/lk4no1



I would like this:
https://prnt.sc/lk4q2c










share|improve this question









New contributor




cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Show us example of your input and desired output
    – Slava Utesinov
    17 hours ago










  • I've added example screenshots.
    – cooper33
    17 hours ago















up vote
1
down vote

favorite









up vote
1
down vote

favorite











I need to sort my products by title - it works without any problem with orderBy:'+title' inside my ng-repeat, but some of my products title contains numbers and I would like to move these products with numbers to the end.



I think I need to use this syntax now:



 <div ng-repeat="product in products | filter : search | orderBy: '+title:false:localeSensitiveComparator' ">


and add the comparator function, but have no idea how to do it (what condition should I use inside the function):



            $scope.localeSensitiveComparator = function(v1, v2) {

what condtion should I use here to detect and compare digits in the title?


// Compare numbers alphabetically, taking locale into account
return v1.value.localeCompare(v2.value);
};


Any help will be appreciated. Thanks.



I have this order now (with only orderBy: '+title')
https://prnt.sc/lk4no1



I would like this:
https://prnt.sc/lk4q2c










share|improve this question









New contributor




cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I need to sort my products by title - it works without any problem with orderBy:'+title' inside my ng-repeat, but some of my products title contains numbers and I would like to move these products with numbers to the end.



I think I need to use this syntax now:



 <div ng-repeat="product in products | filter : search | orderBy: '+title:false:localeSensitiveComparator' ">


and add the comparator function, but have no idea how to do it (what condition should I use inside the function):



            $scope.localeSensitiveComparator = function(v1, v2) {

what condtion should I use here to detect and compare digits in the title?


// Compare numbers alphabetically, taking locale into account
return v1.value.localeCompare(v2.value);
};


Any help will be appreciated. Thanks.



I have this order now (with only orderBy: '+title')
https://prnt.sc/lk4no1



I would like this:
https://prnt.sc/lk4q2c







angularjs sorting






share|improve this question









New contributor




cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 17 hours ago





















New contributor




cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 17 hours ago









cooper33

62




62




New contributor




cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






cooper33 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Show us example of your input and desired output
    – Slava Utesinov
    17 hours ago










  • I've added example screenshots.
    – cooper33
    17 hours ago




















  • Show us example of your input and desired output
    – Slava Utesinov
    17 hours ago










  • I've added example screenshots.
    – cooper33
    17 hours ago


















Show us example of your input and desired output
– Slava Utesinov
17 hours ago




Show us example of your input and desired output
– Slava Utesinov
17 hours ago












I've added example screenshots.
– cooper33
17 hours ago






I've added example screenshots.
– cooper33
17 hours ago



















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






cooper33 is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53370928%2fangular-js-sorting-with-comparator-function%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes








cooper33 is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















cooper33 is a new contributor. Be nice, and check out our Code of Conduct.













cooper33 is a new contributor. Be nice, and check out our Code of Conduct.












cooper33 is a new contributor. Be nice, and check out our Code of Conduct.















 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53370928%2fangular-js-sorting-with-comparator-function%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Saint-Aignan (Tarn-et-Garonne)

Volksrepublik China

How to test boost logger output in unit testing?