javascript - Knockout won't update string array in model made with ko.mapping -
here jsfiddle problem: http://jsfiddle.net/a28ap/5/
viewmodel:
{ "pitalice": [{ "pitanje": "kako se zove rezultat koji se dobija deljenjem dva broja", "ponudjeno": ["kolicnik", "suma", "proizvod"], "tacan": 0 }, { "pitanje": "limonit je ruda", "ponudjeno": ["aluminijuma", "olova", "gvožda"], "tacan": 2 }, { "pitanje": "ko je komponovao operu 'samson dalila'", "ponudjeno": ["Žorž bize", "Ðuzepe verdi", "kamij sen-sans"], "tacan": 2 }, { "pitanje": "ko je autor satiricnih pripovedaka 'danga', 'kraljevic marko po drugi put medu srbima' drugih", "ponudjeno": ["milovan glišic", "laza lazarevic", "radoje domanovic"], "tacan": 2 }, { "pitanje": "koje godine je u atini održana prva olimpijada 'modernog doba'.", "ponudjeno": ["1896.", "1898.", "1900."], "tacan": 0 }]
};
html:
<div data-bind="foreach: pitalice" class="divpitalice"> <div class="divpitanje"> <input type="text" data-bind="value: pitanje" style="width: 600px" /> <div data-bind="foreach: ponudjeno"> <input type="text" data-bind="value: $data" /> <input type="radio" data-bind="attr: { name: $parentcontext.$index, value: $index }, checked: $parent.tacan" /> <br /> </div> </div>
as can see changes big text boxes propagated view model nicely.
but if change smaller text boxes , click save changes not saved in view model.
why?
thanks!
ko.mapping
plugin maps arrays , objects (they become observablearray's , observable's respectively). answer arrays plain strings , not considered objects.
just convert string arrays object arrays:
var dataobj = { "pitalice": [{ "pitanje": "kako se zove rezultat koji se dobija deljenjem dva broja", "ponudjeno": [ { text: "kolicnik" }, { text: "suma" }, { text: "proizvod" } ], "tacan": 0 }, .....
Comments
Post a Comment