I have following JavaScript array,
[{unitPrice: 2499,currency:$,productId:1,retailerId:1,productName:XX ,formattedPrice:$ 2,499,productImage:Images/2012_08_12_00_45_39_4539.jpg,productQuantity:9,totalPrice:19992},
{unitPrice: 4999,currency:$,productId:2,retailerId:1,productName:XX,formattedPrice:$ 4,999,productImage:Images/2012_08_12_00_46_45_4645.jpg,productQuantity:2,totalPrice:9998},
{unitPrice:4555,currency:$,productId:1,retailerId:1,productName:XXXXX,formattedPrice:$ 4,555,productImage:Images/2013_02_12_10_57_49_5749_9868.png,productQuantity:3,totalPrice:13665}]
here is the relevent html,
<table>
<tbody data-bind=foreach: $root>
<tr>
<td><img width=45 height=45 alt= data-bind=attr:{src: productImage}/></td>
<td><span data-bind=html: productName></span></td>
<td><span data-bind=html: formattedPrice></span></td>
<td><input type=number class=quantity data-bind=value: productQuantity, attr:{'data-id': productId } /></td>
<td><span data-bind=html: totalPrice></span></td>
</tr>
</tbody>
</table>
Then I have created observable array as,
observableItems = ko.observableArray(items);
ko.applyBindings(observableItems);
Now I was able to get an specfic element using,
var obj = ko.utils.arrayFirst(list(), function (item) {
return item.productId === id;
});
However when I change,
item.productQuantity = 20;
But UI is not updating. Tried also,
item.productQuantity(item.productQuantity)
But getting error productQuantity is not a function