2016-01-28 65 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

相关问题