AngularJS中使用ng-repeat的index問題
AngularJS使用ng-repeat的index
AngularJS中的ng-repeat中,隱含的index,可以使用$index來訪問,也可以自己指定index對應(yīng)的變量名。
使用隱含的index變量
隱含的index變量名是index,可以使用$index來訪問。
// 定義module和controller var site = angular.module('application.site', []); site.controller('MainController', ['$scope', '$http', function ($scope, $http) { $scope.users = [ {name:"xialei",posts:["post一","post二","post三"]}, {name:"zhangsan",posts:["post四","post五"]} ]; }]);
下面在html頁面內(nèi)使用controller和定義的collection對象。
<div ng-controller="MainController"> <dl ng-repeat="user in users"> <dt ng-init="p_index=$index">Name:{{ user.name }}</dt> </dl> </div>
這里使用了$index,這是AngularJS提供的隱含的collection對象的index變量量。
指定index變量名
在ng-repeat中可以自己指定index的變量名稱,并在隨后使用。
比如下面代碼中,定義了times的index變量名稱timeIndex (為tr 元素), 為days的遍歷操作,定義了dayIndex的索引變量。
<tr data-ng-repeat="(timeIndex, time) in times"> <td style="text-align: center; width: 12.5%;" data-ng-style="doGetTimeColumnStyle($index)">{{time}}</td> <td data-ng-repeat="(dayIndex, day) in days" data-ng-click="selectDatetimeSlot(dayIndex, day, timeIndex, time)"> <button class="popupWindow" data-ng-if="datetimeSlots[dayIndex][timeIndex].status && datetimeSlots[dayIndex][timeIndex].status != 'AVAILABLE' && datetimeSlots[dayIndex][timeIndex].status != 'EXPIRED' && datetimeSlots[dayIndex][timeIndex].mode != 'ONE_V_MANY'" data-ng-class="datetimeSlots[dayIndex][timeIndex].displayStatus | lowercase" data-placement="{{doGetTimeColumnPopOverPlacement(dayIndex, timeIndex)}}" data-animation="am-flip-x" data-trigger="focus" data-bs-popover data-template="partials/timeSlotPopover.html"> {{datetimeSlots[dayIndex][timeIndex].displayStatus}} {{datetimeSlots[dayIndex][timeIndex].stdName}} </button>
ps:
$index是angular 內(nèi)針對ng-repeat提供的隱含index變量名稱,如果在ng-repeat嵌套使用時(shí),index名稱會發(fā)生沖突及覆蓋。這是也應(yīng)該使用自定義的變量名。
下面例子中父級的index使用ng-init,定義了p_index來指定為parent index。
<div ng-controller="MainController"> <dl ng-repeat="user in users"> <dt ng-init="p_index=$index">Name:{{ user.name }}</dt> <dd ng-repeat="p in user.posts">Parent index:{{ p_index }} - {{ p }} self Index:{{ $index }} </dd> </dl> </div>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
angular或者js怎么確定選中ul中的哪幾個(gè)li
下面小編就為大家?guī)硪黄猘ngular或者js怎么確定選中ul中的哪幾個(gè)li。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題
今天小編就為大家分享一篇解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08Angular2中如何使用ngx-translate進(jìn)行國際化
本篇文章主要介紹了Angular2中使用ngx-translate進(jìn)行國際化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05angularjs點(diǎn)擊圖片放大實(shí)現(xiàn)上傳圖片預(yù)覽
這篇文章主要為大家詳細(xì)介紹了angularjs點(diǎn)擊圖片放大實(shí)現(xiàn)上傳圖片預(yù)覽的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02關(guān)于AngularJS中幾種Providers的區(qū)別總結(jié)
這篇文章主要給大家介紹了關(guān)于AngularJS中幾種Providers的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用AngularJS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05