मैं JavaScript श्रृंखला निम्नलिखित है,knockoutjs में देखने योग्य सरणी तत्व को कैसे अपडेट करें?
[{"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}]
यहाँ प्रासंगिक एचटीएमएल है,
<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>
तो मैं के रूप में मानने योग्य सरणी बनाया है,
observableItems = ko.observableArray(items);
ko.applyBindings(observableItems);
अब मैं एक प्राप्त करने में सक्षम था specfic तत्व का उपयोग,
var obj = ko.utils.arrayFirst(list(), function (item) {
return item.productId === id;
});
हालांकि
जब मैं बदलने के लिए,
item.productQuantity = 20;
लेकिन यूआई अपडेट नहीं हो रहा है। यह भी कोशिश की,
item.productQuantity(item.productQuantity)
लेकिन त्रुटि productQuantity हो रही एक समारोह
देखे जाने योग्य Items.valueHasMutated() काम नहीं कर रहा है – user960567
यह फ़ंक्शन जोड़कर इसे मिला, फ़ंक्शन कन्व rtToObservable (सूची) { var newList = []; $।प्रत्येक (सूची, फ़ंक्शन (i, obj) { var newObj = {}; ऑब्जेक्ट.कीज (ओबीजे) .forEach (फ़ंक्शन (कुंजी) { newObj [key] = ko.observable (obj [key]); }); newList.push (newObj); }); नई सूची लौटें; } – user960567
कृपया इसे अंदरूनी उत्तर दें। – user960567