2016-03-15 91 views
0

(使用AngularJS)AngularJS ng重複:欺騙

我正在學習AngularJS並嘗試一個簡單的結帳系統。我有兩列,左邊有物品,右邊有一個籃子(購物車)。基本上你可以從左邊添加物品,並且它們出現在右邊的籃子裏。

問題是,當你添加一個項目到已經存在的籃子時,我在控制檯中得到ngRepeat:dupes錯誤。我已經處理了增加數量的功能,但是它阻止了任何其他項目在籃子中顯示。

所以理想情況下,我想忽略ng:repeat dupes錯誤並繼續向籃子添加物品。

這是一個籃子的片段;

<div ng:repeat='merchandise in merchandiseCtrl.basket' class='row'> 
    <div class='col-sm-3'>{{ merchandise.name }}</div> 
    <div class='col-sm-3'> 
     <input type='text' class='form-control input-sm' value='{{ merchandise.quantity }}' ng-model=' merchandise.quantity'> 
    </div> 
    <div class='col-sm-3'>{{ merchandise.price }}</div> 
    <div class='col-sm-3 '> 
     <button ng-click='merchandiseCtrl.removeItem(merchandise)' type='button' class='btn btn-link btn-xs'> 
     <span class='glyphicon glyphicon-trash'> </span> 
     </button> 
    </div> 
    <hr> 
</div> 

如果我沒有明確什麼我需要或您需要更多的代碼解釋,請評論。

實施例(希望以清除任何誤解):

我希望這是更清楚。假設你的購物車中已經有一件襯衫,然後你想再添加一件襯衫(這個工作正常,而且我的功能可以將數量加1),但是,這個錯誤在瀏覽器控制檯窗口中重複。然後,當我試圖向籃子中添加運動衫時,籃子中的內容將不會更新

+1

可能的重複http://stackoverflow.com/questions/16296670/angular-ng-repeat-error-duplicates-in-a-repeater-are-not-allowed – ste2425

+0

我想ngRepeat應該是'ng-repeat'不是'ng:repeat' –

+0

@ojuskulkarni謝謝你。我已修復此問題(出於某種原因,它沒有運行,但是再次感謝) – Jasper

回答

1

我不確定如果我正確理解了您的問題,但嘗試在您的ng中添加「由$ index指定的軌道」 -repeat

+0

不要讓人聽起來像屁股,但答案應該解釋爲什麼。否則OP對於實際問題並不明智。 – ste2425

+0

對不起,這裏是一些文檔:https://docs.angularjs.org/error/ngRepeat/dupes 的事情是,我不知道正確與所有數量的事情瞭解的問題... –

+0

我希望這更清楚。假設你的購物車中已經有一件襯衫,然後你想再添加一件襯衫(這個工作正常,而且我的功能可以將數量加1),但是,這個錯誤在瀏覽器控制檯窗口中重複。然後,當我試圖向運動衫添加運動衫時,籃子中的內容將不會更新。 – Jasper

1

使用軌道由內而外$索引ng-重複類似

<div ng-repeat="item in items track by $index"> 
+0

您能解釋一下這是做什麼的,而且$ index是引用的,還是需要引用模型中的字段? – Jasper

+0

@CottonSocksBro所有'ngRepeats'都會生成重複內部可以使用的變量。 '$ index'是當前循環的索引。 '跟蹤'是做的簡而言之是'不跟蹤這個元素的值,因爲有重複,但由這個元素索引'。如果迭代一個對象數組,它也可以用於跟蹤元素屬性。 – ste2425

+0

我在我的模特上有標識符,例如merchandiseCtrl.basket中的商品通過merchandise.id跟蹤...但這不起作用。 – Jasper

0

當有重複$hashKey JSON對象,我得到這個錯誤。