[ngRepeat:dupes] 使用ng-repeat報錯

背景

最近在用ionic+angularjs做一款應用,期間使用ionic的slidebox時用ng-repeat指定輪播的圖片

<ion-slide-box on-slide-changed="slideHasChanged($index)" auto-play="true" does-continue="true" slide-interval=2000 show-pager="true" pager-click="pageClick(index)" active-slide="model.activeIndex" delegate-handle="delegateHandler">
    <ion-slide ng-repeat="slideImg in slideImages">
        <div class="box">
            <img src="{{slideImg}}" style="width: 100%;">
        </div>
    </ion-slide>
</ion-slide-box>

測試的時候為了方便直接復制的相同的地址:

$scope.slideImages = [
        'images/banner1.jpg',
        'images/banner1.jpg',
        'images/banner1.jpg',
        'images/banner1.jpg'
    ];

結果控制臺報錯:
Error: [ngRepeat:dupes] http://errors.angularjs.org/1.5.3/ngRepeat/dupes?

解決方案

原因是ngRepeat不允許存在兩個相同ID的對象,所以要加上track by表達式,這里為了方便直接使用索引變量$index

<ion-slide-box on-slide-changed="slideHasChanged($index)" auto-play="true" does-continue="true" slide-interval=2000 show-pager="true" pager-click="pageClick(index)" active-slide="model.activeIndex" delegate-handle="delegateHandler">
    <ion-slide ng-repeat="slideImg in slideImages track by $index">
        <div class="box">
            <img src="{{slideImg}}" style="width: 100%;">
        </div>
    </ion-slide>
</ion-slide-box>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容