2016-01-28 30 views
0

我想按字母順序排序項目名稱的集合並將它們顯示在頁面中。我的問題是名字包含了諸如如何在我的情況下對變量進行排序

var items = [ 
    {‘name’ : ‘name 1’}, 
    {‘name’ : ‘name 2’}, 
    {‘name’ : ‘name 3’}, 
    …more 
    {‘name’ : ‘name 11’}, 
    {‘name’ : ‘name 12’}, 
    {‘name’ : ‘name 21’}, 
    {‘name’ : ‘name 22’} 
] 

號的Html

<div ng-repeat=「item in items | orderBy: ‘name’」> 
    <h3> {{item.name}}</h3> 
</div> 

的結果就像

name 1 
name 11 
name 12 
name 2 
name 21 
name 22 

我希望有

name 1 
name 2 
name 3 
name 11 
name 12 
name 21 
name 22 

是否有一個快速如何做到這一點?非常感謝!

+0

你可以改變你的數據,使其「名稱01」? –

回答

1
<div ng-repeat="item in items | orderBy: 'atoi(name.split(\' \')[1])'"> 
    <h3> {{item.name}}</h3> 
</div> 
+0

它的工作原理!你能解釋它背後的邏輯嗎? – BonJon

+0

它將您的字符串按空格分成2個字符串數組。第二個元素是我們的字符串。我們使用'atoi'方法將其解析爲整數。這種方式對整數而不是字符串進行角度排序。 – serhiyb

+0

但它不適用於字符串中沒有數字的項目正確嗎? – BonJon

相關問題