我有几个街道地址
10 E. Main Street
1 E. Main Street
2 E. Main Street
当我执行orderBy(使用ng-repeat)时,它们会出现
1 E. Main Street
10 E. Main Street
2 E. Main Street
我怎样才能让它们成为
1 E. Main Street
2 E. Main Street
10 E. Main Street
编辑:
<th ng-click="reverse = (sort=='date' ? !reverse : false); sort = 'date'"><a href='#' >Date</a></th>
<th ng-click="reverse = (sort=='address' ? !reverse : false); sort = 'address'"><a href='#' >Address</a></th>
<th ng-click="reverse = (sort=='message' ? !reverse : false); sort = 'message'"><a href='#' >Hazard</a></th>
自定义循环
<tr ng-repeat="address in ctrl.addresses | orderBy: (sort=='address' ? addressSort() : sort) : reverse">
并在我的控制器中
this.addressSort = function(streetAddress){
return parseInt(streetAddress.split(' ')[0]);
}
反向排序逻辑适用于日期和消息,但我只能获得地址的降序排序。
答案 0 :(得分:0)
您拥有字母数字字符的数据结构,您的选项有限。没有框架可以解决这个问题。
如果您的对象结构在一个属性中包含门牌号,而在另一个属性中包含街道地址。您可以对每个属性进行排序。
由于您询问了角度,请创建一个单独的过滤器,然后可以应用ng-repeat。
如果您需要,我们可以帮助您编写该代码。 欢呼声。
答案 1 :(得分:0)
我会这样做:
file = open("fileName", 'r')
first_line = file.readline()
count = 0
for line in file:
if count == 0:
count = 1
DoStuff_1(first_line)
DoStuff_2(line)
file.close()
sort方法中的回调函数检查数组中的第一个单词,并返回要排序的值。 (var addresses = ["10 E. Main Street", "1 E. Main Street", "2 E. Main Street"];
addresses.sort(function(a, b) {
var numA = a.split(" ")[0];
var numB = b.split(" ")[0];
return numA - numB;
});
为第一个的负数,以及a
为第一个的正数。