我是angular js的新手。我有这样的数组:
$scope.experience_list = ['6-7','0-1','4-5','2-3','8-10','10+', 'na'];
我是从ajax调用中获得这个数组的。因此数组的值将以任意顺序出现。
我使用ng-repeat来显示这个数组
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<div ng-app="">
<ul ng-init="experience_list = ['6-7','0-1','4-5','2-3','8-10','10+', 'na']">
<li ng-repeat="experience in experience_list | orderBy:'toString()' track by $index">
<a href="javascript:void(0)"><i class="fa fa-square-o" aria-hidden="true"></i> <span ng-if="experience == 'na'">Unknown</span> <span ng-if="experience != 'na'">{{experience}} years</span></a>
</li>
</ul>
</div>
它给我的结果是
0-1 years
10+ years
2-3 years
4-5 years
6-7 years
8-10 years
Unknown
但我希望是:
0-1 years
2-3 years
4-5 years
6-7 years
8-10 years
10+ years
Unknown
任何建议或帮助都将不胜感激。
发布于 2017-09-08 18:01:58
试试这个:
<li ng-repeat="experience in experience_list | orderBy:$index track by $index">
发布于 2017-09-08 20:05:42
如果你想执行任何函数,只需通过在函数中传递$index来调用它。并使用$index从函数中的数组中提取值。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<div ng-app="">
<ul ng-init="experience_list = ['0-1','2-3','4-5','6-7','8-10','10+', 'na']">
<li ng-repeat="experience in experience_list">
<a href="javascript:void(0)"><i class="fa fa-square-o" aria-hidden="true"></i> <span ng-if="experience == 'na'">Unknown</span> <span ng-if="experience != 'na'">{{experience}} years</span></a>
</li>
</ul>
</div>
发布于 2017-09-08 17:59:48
如果你这样做的话
ng-repeat="experience in experience_list track by $index"
你得到了正确的输出
这是另一种方法
var a = ['0-1','2-3','4-5','6-7','8-10','10+', 'na']
$scope.experience_list = a.map(function(obj){
return{
order : obj.split('-')[0] || obj,
real : obj
};
});
html
<ul>
<li ng-repeat="experience in experience_list | orderBy:-'order'">
<a href="javascript:void(0)"><i class="fa fa-square-o" aria-hidden="true"></i> <span ng-if="experience == 'na'">Unknown</span> <span ng-if="experience != 'na'">{{experience.real}} years</span></a>
</li>
</ul>
只需尝试在删除和推送新值时使用相同的格式
https://stackoverflow.com/questions/46113730
复制相似问题