看來,當我在ng-repeat內部使用orderBy過濾器時,爲了按某些屬性按字母順序排列對象數組,我得到的結果是錯誤的。 具體而言,orderBy首先放置所有以重音符號(如Ά,Έ,Ή,Ί等)開頭的字符串,忽略它們在字母表中的位置。 在我的例子,我創建的對象AngularJS ng-repeat orderby無法正確使用希臘語單詞
$scope.words = [
{id: 1, name: "Αντώνης"},
{id: 2, name: "Ίκαρος"},
{id: 3, name: "Έλλη"},
{id: 4, name: "Βασίλης"},
{id: 5, name: "Γιάννης"},
{id: 6, name: "Δημήτρης"},
{id: 7, name: "Ζήσης"},
{id: 8, name: "Ηρακλής"},
{id: 9, name: "Θανάσης"},
];
的數組,並使用了NG-重複指令創建一個列表:我得到
<div ng-repeat="w in words | orderBy:'name'">{{w.name}}</div>
的排序結果爲:
Έλλη, Ίκαρος, Αντώνης, Βασίλης, Γιάννης, Δημήτρης, Ζήσης, Ηρακλής, Θανάσης
雖然正確的將是:
Αντώνης, Βασίλης, Γιάννης, Δημήτρης, Έλλη, Ζήσης, Ηρακλής, Θανάσης, Ίκαρος
看小提琴here。
反正有糾正這種行爲嗎?我怎樣才能創建我自己的orderBy過濾器?
你可以提供你自己的謂詞/比較函數orderBy filer。請參閱https://code.angularjs.org/1.3.7/docs/api/ng/filter/orderBy – lujcon 2015-02-08 12:27:08