Hallo!
Ich würde gerne erreichen, dass die Werte aus den input-Feldern in die Liste geschrieben werden und nach Klicken auf remove wieder verschwinden. Das Hinzufügen hat schon mal geklappt, aber aus irgendeinem Grund klappts jetzt nicht mehr. Ich hoff, es ist nicht nur ein Tippfehler...
Und was ich noch gar nicht rausbekommen habe ist, wie man es schafft, Dinge aus der Liste zu entfernen obwohl der button dafür außerhalb der Liste ist. Im Moment würde jedes Mal, wenn ich etwas in die Liste einfüge, ein neuer remove button erstellt.
Ich würde gerne erreichen, dass die Werte aus den input-Feldern in die Liste geschrieben werden und nach Klicken auf remove wieder verschwinden. Das Hinzufügen hat schon mal geklappt, aber aus irgendeinem Grund klappts jetzt nicht mehr. Ich hoff, es ist nicht nur ein Tippfehler...
Und was ich noch gar nicht rausbekommen habe ist, wie man es schafft, Dinge aus der Liste zu entfernen obwohl der button dafür außerhalb der Liste ist. Im Moment würde jedes Mal, wenn ich etwas in die Liste einfüge, ein neuer remove button erstellt.
Code:
<html> <head> <title> </title> <meta charset='utf-8'/> <link rel='stylesheet' href='style.css' /> </head> <body> <form data-bind="click:addProduct"> <input data-bind="value:prodname"></input> <input data-bind="value:price"></input> <button type="submit">add</button> </form> <ul data-bind="foreach:shoppingCart"> <li data-bind="text:name"></li> <li data-bind="text:price"></li> <button data-bind="click:$root.removeProduct">remove</button> </ul> <script type='text/javascript' src='knockout.js'></script> <script type="text/javascript"> function Product(name,price) { var self = this; self.name = ko.observable(name); self.price = ko.observable(price); } function personVM() { var self = this; self.prodname = ko.observable(""); self.price = ko.observable(""); self.shoppingCart = ko.observableArray(""); self.addProduct = function() { if(self.prodname() != "" && self.price() != "") self.shoppingCart.push(new Product(self.prodname(),self.price())); }; self.removeProduct = function(product) { self.shoppingCart.remove(product); }; } var vm = new personVM(); ko.applyBindings(vm); </script> </body> </html>
Comment