在knockout.js购物车编辑器示例中清除行

时间:2014-09-16 12:31:33

标签: javascript knockout.js clear cart

我正在尝试使用here

的购物车编辑器的淘汰赛js示例

我希望在java脚本警报到来时立即删除用户添加的所有行。我认为将cartLine数组设置为零可以完成工作,但它没有工作。我试过这个:

    self.save = function() {
    cartLine([])
    var dataToSave = $.map(self.lines(), function(line) {
        return line.product() ? {
          productName: line.product().name,
          quantity: line.quantity()
        } : undefined
    });
    alert("THANK YOU FOR YOUR ORDER!");  
};

但它没有帮助。如果我错了,请纠正我。感谢。

更新:

self.save = function() {
  var dataToSave = $.map(self.lines(), function(line) {
    return line.product() ? {
      productName: line.product().name,
      quantity: line.quantity()
    } : undefined
  });
  self.lines([]);
  self.addLine = function() { self.lines.push(new CartLine()) };
 alert("THANK YOU FOR YOUR ORDER!");
  self.addLine = function() { self.lines.push(new CartLine()) }; //didn't work
};

1 个答案:

答案 0 :(得分:1)

lines对象的Cart字段包含所有购物车行。它用于生成dataToSave,然后您可以清除它:

self.save = function() {
var dataToSave = $.map(self.lines(), function(line) {
    return line.product() ? {
      productName: line.product().name,
      quantity: line.quantity()
    } : undefined
});
self.lines([]); // clear cart lines
alert("THANK YOU FOR YOUR ORDER!");
self.addLine(); // add a new line