我正在顯示樣本員工數據表,並且我需要以姓爲單。該數據是通過以.json文件提供,並且名稱是一個字符串:如何使用分割字符串函數的結果與Angular.js進行排序?
users.json
{
"id": 5,
"name": "Bob Smith",
"username": "Eloyn.Skilles",
"email": "[email protected]",
"address": {
"street": "Rox Trial",
"suite": "Suite 2890",
"city": "Smashmouth",
"zipcode": "586041099",
"geo": {
"lat": "27.8718",
"lng": "21.8984"
}
},
"phone": "210.067.6132",
"website": "elvis.io",
"company": {
"name": "Johns Group",
"catchPhrase": "Configurable multimedia taskforce",
"bs": "generate enterprise etailers"
}
}
到目前爲止,我已經能夠分割字符串成兩個:
MainController.js
/* Function to split strings where there is a space present */
$scope.nameSplitter = function(string, index) {
$scope.array = string.split(' ');
return $scope.result = $scope.array[index];
}
這裏是HTML:
<table class="table table-striped table-bordered table-condensed table-hover">
<th>Name</th>
<th>Email</th>
<th>Phone</th>
<!-- Would like to ideally orderBy last name -->
<tr ng-repeat="user in userData | orderBy:'name'">
<td>{{ nameSplitter(user.name,1) }}, {{ nameSplitter(user.name,0) }}</td> <!--0 returns first name, 1 returns last name-->
<td><a ng-href="mailto:{{user.email}}" target="_blank">{{user.email}}</a></td>
<td><a ng-if="user.phone !== ''" href="tel:{{nameSplitter(user.phone, 0)}}" data-toggle="tooltip" title="{{nameSplitter(user.phone, 0)}}">
<span class="glyphicon glyphicon-earphone"></span></a></td>
</table>
我試過這orderBy:'nameSplitter(user.name, 1)'
與各種支架組合,但沒有運氣。
您打算如何處理「邊緣情況」單名(Pele),冠名加單名(教皇弗朗西斯),姓氏多部分(Ludwig van Beethoven),多個姓氏(EnriquePeñaNieto),多個名字(Sarah Jessica Parker)等。 ?如果可以的話,您應該考慮重組您的表格以包含首選姓氏,首選姓名,地址的首選形式......取決於您計劃如何使用數據。 – shoover
這是一個很好的觀點。感謝您將此引起我的注意。我正在處理的這個項目中的數據很簡單,幸運的是沒有(也不會)包含邊界情況。 –