Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy Can't I Use ko.computed() in Knockoutjs?
    primarykey
    data
    text
    <p>I am new to using knockoutjs and I encountered this problem when using .computed()</p> <p>here is my HTML Code:</p> <pre class="lang-html prettyprint-override"><code>&lt;table style="float:left;padding-right:250px" cellspacing="3"&gt; &lt;tr&gt; &lt;td&gt;Product Name&lt;/td&gt; &lt;td&gt;Price&lt;/td&gt; &lt;td&gt;Stocks&lt;/td&gt; &lt;/tr&gt; &lt;tbody data-bind="foreach: Products"&gt; &lt;tr&gt; &lt;td&gt;&lt;a href="#" data-bind="text: Name, click:$root.addProduct, value: Name"&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;input data-bind="value: Price" size="3"/&gt;&lt;/td&gt; &lt;td data-bind="text:Stocks"&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;table style="float:left"&gt; &lt;tr&gt; &lt;td&gt;SKU&lt;/td&gt; &lt;td&gt;Product Name&lt;/td&gt; &lt;td&gt;Price&lt;/td&gt; &lt;td&gt;Qty&lt;/td&gt; &lt;td&gt;Sub&lt;/td&gt; &lt;/tr&gt; &lt;tbody data-bind="foreach: Cart"&gt; &lt;tr&gt; &lt;td data-bind="text: SKU"&gt;&lt;/td&gt; &lt;td data-bind="text: Name"&gt;&lt;/td&gt; &lt;td data-bind="text: Price"&gt;&lt;/td&gt; &lt;td data-bind="text: Quantity"&gt;&lt;/td&gt; &lt;td data-bind="text: SubTotal()"&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="#" data-bind="click: $root.removeProduct"&gt;Remove&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; </code></pre> <p> ​</p> <p>And here is my Script Code:</p> <pre><code>var Product = function(data) { var self = this; self.SKU = ko.observable(data.SKU); self.Name = ko.observable(data.Name); self.Price = ko.observable(data.Price); self.Stocks = ko.observable(data.Stocks); self.Quantity = ko.observable(data.Quantity); self.SubTotal = ko.computed(function() { return self.Quantity() * self.Price(); }); }; function ProductViewModel() { var self = this; var items = [{ Name: "Crystalys", SKU: "00001", Price: 500, Stocks: 12, Quantity: 0}, { Name: "Aghanim's Scepter", SKU: "00002", Price: 4200, Stocks: 5, Quantity: 0}, { Name: "Vladmir's Offering", SKU: "00003", Price: 500, Stocks: 10, Quantity: 0}, { Name: "Pwer Threads", SKU: "00004", Price: 1450, Stocks: 20, Quantity: 0}, { Name: "Satanic", SKU: "00005", Price: 6150, Stocks: 5, Quantity: 0}, { Name: "The Butterfly", SKU: "00006", Price: 6000, Stocks: 4, Quantity: 0}, { Name: "Divine Rapier", SKU: "00007", Price: 6200, Stocks: 1, Quantity: 0}, { Name: "Iron Wood Branch", SKU: "00008", Price: 53, Stocks: 100, Quantity: 0}]; self.Products = ko.observableArray(items); self.Cart = ko.observableArray(); // Operations self.addProduct = function(Product) { self.Cart.push({ Name: Product.Name, Price: Product.Price, Quantity: 1, SKU: Product.SKU }); } self.removeProduct = function(Product) { self.Cart.remove(Product) } } ko.applyBindings(new ProductViewModel());​ </code></pre> <p>I really don't know what seem to be the error. Please help. Thank you in advance.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload