天天看點

為Angularjs ngOptions加上index解決方案

今天在Angularjs交流群中有位童學問道如何為Angular select的ngOptions像Angularjs的ngRepeat一樣加上一個索引$index.

其實對于這個問題來說Angular本身并未提供$index之類的變量供使用。但是也不是說對于這個問題我們就沒有解決方案。

把這個問題換成角度來看,我們所需要的就是js數組的下标,是以我們如果我們能夠在對象上加入下标,使用表達式作為option的label就能解決了。

但是第一印象讓我想起的是js數組本來就是一個key/value的對象,隻是key為數組下标而已,是以有了如下之設計:

html:

js:

可是不幸的是如果對于JavaScript你若将他作為key/value對象那麼key将是無序的是以,出現了無序的下标如下:

<a></a>

是以這樣是無法解決的。還好部落客還有一招,ngOptions支援Angularjs的filter,是以我們可以對資料源對象上加上一個order字段标示下标作為序号。并且你可以在一個2年前的Angular的issue中看到Angular已經fix issue,option會對數組進行按下标順序生成。

本文轉自破狼部落格園部落格,原文連結:http://www.cnblogs.com/whitewolf/p/3550914.html,如需轉載請自行聯系原作者

繼續閱讀