Angular "짐바브웨"다음에 "올랑 군도"가 정렬됩니다. 이 문제를 세계적으로 해결하고 싶습니다. 사용자 지정 정렬 함수를 작성하고 모든 orderBy
필터에 지정하는 대신, 필자는 어떻게 든 기본 정렬 함수를 전역 적으로 패치하려고합니다. 이것이 가능한가?각도 정렬 수정
먼저 정상화하여 다음과 같은 기능을 가진 두 문자열이 문제가 해결되었습니다 내가 바라고 있어요
function norm(str) {
str = str.toLowerCase();
str = str.replace(/\\s/g, "");
str = str.replace(/[àáâãäå]/g, "a");
str = str.replace(/æ/g, "ae");
str = str.replace(/ç/g, "c");
str = str.replace(/[èéêë]/g, "e");
str = str.replace(/[ìíîï]/g, "i");
str = str.replace(/ñ/g, "n");
str = str.replace(/[òóôõö]/g, "o");
str = str.replace(/œ/g, "oe");
str = str.replace(/[ùúûü]/g, "u");
str = str.replace(/[ýÿ]/g, "y");
str = str.replace(/\\W/g, "");
return str;
}
이 각도에서 한 번에 할 수있는 방법이다 다시 그것에 대해 걱정하지 마십시오.
[맞춤 필터] (http://docs.angularjs.org/guide/dev_guide.templates.filters.creating_filters)를 만드시겠습니까? "betterOrderBy"라고해도됩니까? –
나는 angularjs가 javascript 네이티브 비교 연산자를 사용한다고 생각합니다. – Tosh
@MarkRajcok, 좋은 생각입니다. 이 비교 픽스를 제외하고는'betterOrderBy'는'orderBy'와 똑같이 동작하는 한 완벽합니다. –