国产探花免费观看_亚洲丰满少妇自慰呻吟_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>

執行結果:

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

[] === []

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉峪关市| 乌兰察布市| 乌什县| 东安县| 金阳县| 库尔勒市| 丹阳市| 新疆| 灌阳县| 卫辉市| 恩施市| 公主岭市| 栾川县| 宝丰县| 左权县| 大连市| 内丘县| 岑巩县| 石狮市| 洪洞县| 西和县| 宣恩县| 伊吾县| 麻城市| 漳浦县| 宜昌市| 固原市| 淮南市| 台江县| 诏安县| 界首市| 南漳县| 盘锦市| 潞城市| 珲春市| 招远市| 离岛区| 万盛区| 邯郸市| 安阳县| 牟定县|