国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS ng-repeat數組有重復值的解決方法

2019-11-20 08:41:16
字體:
來源:轉載
供稿:網友

前言

大家都知道默認在ng-repeat的時候每一個item都要保證是唯一的,否則console就會打出error告訴你哪個key/value是重復的。

如:

$scope.items = [ 'red', 'blue', 'yellow', 'white', 'blue'];

這個數組blue就重復了,html這么遍歷它

<li ng-repeat="item in items">{{ item }}</li>

控制臺就會拋出一個錯誤:

點擊錯誤鏈接到Angular官網看詳細錯誤,官網明確給出是因為值重復了:

Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: item in items, Duplicate key: string:blue, Duplicate value: blue

解決方法

這就納悶了,正常的業務里數組有重復的值是很正常的,數組要硬要搞成唯一的ng-repeat才能遍歷就白瞎了,繼續往下看,發現官網給了一個解決的方案

<div ng-repeat="value in [4, 4] track by $index"></div>

于是按照這個方案改了一下

<li ng-repeat="item in items track by $index">{{ item }}</li>

刷新網頁,內容被正常解析

其實ng-repeat還是需要一個唯一的key,只不過你不track的話默認就是item本身,另外也只有在普通數據類型字符串,數字等才會出現這個問題,如果換成Object

$scope.items = [ ['red'], ['blue'], ['yellow'], ['white'], ['blue']];

html恢復為

<li ng-repeat="item in items">{{ item }}</li>

執行結果:

不明白的童鞋那就自己看看下面的運算表達式,猜猜結果是什么,然后在瀏覽器的控制臺試一試你的答案是否正確

[] === []

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博湖县| 廊坊市| 梓潼县| 固镇县| 大理市| 万荣县| 新乡县| 罗江县| 富民县| 绥化市| 城口县| 遂宁市| 耒阳市| 贵定县| 德令哈市| 霞浦县| 上犹县| 名山县| 常州市| 方山县| 枣庄市| 凭祥市| 长海县| 冕宁县| 景谷| 桑植县| 海兴县| 彰化县| 江源县| 诸城市| 宜兴市| 象山县| 富阳市| 金溪县| 红桥区| 广南县| 安龙县| 乌什县| 包头市| 武强县| 福安市|