2015-11-06 47 views
0

多餘的項目我已經嘗試做一個簡單的購物車功能在我的應用程序。我爲我的應用使用聚合物,購物車和產品都在一個組件中。我使用coffeescript作爲默認,但在JavaScript中的任何幫助將同樣有幫助。更新車,並刪除在車

功能是增加產品的數量,同時增加購物車中的數量。

這是我如何在網頁

increaseQty:(e)-> 
     tmp = @filteredItems.findIndex (i) -> 
     i == e.model.item 
     @set 'filteredItems.' + tmp + '.quantity', e.model.item.quantity + 1 
     @addToCart e 

的「addToCart」功能上增加數量計數是超級簡單。我只是將當前物品推入購物車。

addToCart:(e)-> 
      #i = 0 
      @push 'cart', e.model.item 

我的問題是,當我添加量超過「1」,它複製購物車中的最後一個實例的項目,是一個我所需要的。

我試圖用「而」循環比較檢查,如果一個項目是已經存在於購物車,並試圖增加數量,但它並不像它應該工作。我假設有一個更好的方法來做到這一點。任何幫助,將不勝感激。

+0

你能解釋一下'@push()'呢?它裏面的代碼是什麼? –

+0

請顯示'@ set'和'@ push'代碼。 –

+0

它與「this.push('array',item)」相同 – sushcha

回答

0

您可以使用underscore.jsany功能檢查,如果一個項目已經在插入前車。

假設model.item有一個屬性id其可以唯一地標識該項目。

require 'underscore' 

found = _.any cart, (elem) -> elem.id == e.model.item.id 
if !found: 
    @addToCart e 

我沒有測試代碼。只是一個普遍的想法。