AngularJS ng-option get index

2019-07-21 19:58发布

I'm making a playlist option in the project I'm working on and I'm trying to get a dropdown for all the videos in the list.

which is easy

<select ng-options="vid.Id for vid in playList.Videos track by video.Id" ng-model="selected" class="browser-default"></select>

but this shows a drop down of the Id's, but now I want it to show the position in the list +1;

So when playing video 5/15 the drop down should show 1 to 15 (so not 0 to 14) and 5 should be selected.

any idea on how to accomplish this?

2条回答
叼着烟拽天下
2楼-- · 2019-07-21 20:47

If you want to display index of the current video as option text, then this ngOptions expression should do the trick:

ng-options="vid as playList.Videos.indexOf(vid)+1 for vid in playList.Videos track by video.Id"

The key here is that you can use indexOf method on Videos array to calculate current video index, and then add 1.

查看更多
Melony?
3楼-- · 2019-07-21 20:49

You can track by the index of the array. $index is set to the item index or key.

<select ng-options="vid as ($index + 1) for vid in playList.Videos track by $index" ng-model="selected" class="browser-default"></select>
查看更多
登录 后发表回答