我有一个JSON,其中版本号对应于手动插入html中的字符串。 JSON示例:
Object $$hashKey : "007"
tenant : "A. Edition"
uri :"1101403"
version : "4"
在html中:
<th ng-click="sortData('version')">
Version
</th>
<tr ng-repeat="t in tenants | orderBy:sortColumn:reverseSort" >
<td>
<span ng-if="t.version==1" >Business Edition</span>
<span ng-if="t.version==2" >Non-business Edition</span>
<span ng-if="t.version==3" >Bank Edition</span>
.......
</td>
排序功能:
$scope.sortData = function (column) {
$scope.reverseSort = ($scope.sortColumn == column) ?!$scope.reverseSort: false;
$scope.sortColumn = column;
}
我想用字符串(商业版,非商业版等)而不是t.version排序。 我如何轻松地做到这一点(新的角度)?谢谢你的帮助。
答案 0 :(得分:1)
这里可以使用面向对象编程的基本原理。您可以将“版本”属性转换为具有“id”和“value”属性的对象:
//your tenants object
[
{
tenant: "A. Edition",
uri: "1101403",
version:
{
id: 1,
value: "Business Edition"
}
},
{
tenant: "B. Edition",
uri: "1101404",
version:
{
id: 2,
value: "Non-Business Edition"
}
},
{
tenant: "C. Edition",
uri: "1101405",
version:
{
id: 1,
value: "Business Edition"
}
},
{
tenant: "D. Edition",
uri: "1101406",
version:
{
id: 3,
value: "Bank Edition"
}
}
]
好的是这也简化了你的HTML:
<tr ng-repeat="t in tenants | orderBy:sortColumn:reverseSort" >
<td>
<span>{{t.version.value}}</span>
</td>
然后在设置排序术语时:
$scope.sortColumn = 'version.id';