ajax - Kendo UI: Update transport doesn't trigger after calling datasource sync -
im struggling on in hours now, cant find documentation on how implement simple ajax update on server using forms , kendo mvvvm , datasource.
kendo mvvm
$(function() { var apiurl = "http://a31262cd2f034ab8bcda22968021f3b8.cloudapp.net/api", meetingdatasource = new kendo.data.datasource({ transport: { read: { url: apiurl + "/meetings/4", datatype: "jsonp" }, update: { type: "put", url: apiurl + "/meetings", contenttype: "application/json; charset=utf-8", datatype: 'json', }, parametermap: function(options, operation) { return kendo.stringify(options); } }, batch: true, change: function() { }, schema: { model: { id: "id", fields: { title: { editable: true }, starttime: { type: "date" }, endtime: { type: "date" } } } } }); meetingdatasource.fetch(function () { var viewmodel = kendo.observable({ description: result.description, title: result.title, venue: result.location, startdate: result.starttime, enddate: result.endtime, savechanges: function (e) { //im not sure line this.set("title", this.title); meetingdatasource.sync(); e.preventdefault(); } }); kendo.bind($("#view"), viewmodel); }); });
the ui
<ul class="forms" id="ul-meeting"> <li> <label for="title" >title:</label> <input data-bind="value: title" class="k-textbox" style="width:350px;"/> </li> <li> <label for="description" >description:</label> <textarea data-bind="value: description" id="description" rows="6" cols="80" class="k-textbox" style="width:350px;"></textarea> </li> <li> <label for="location">venue:</label> <textarea data-bind="value: venue" id="location" rows="4" cols="80" class="k-textbox" style="width:350px;"></textarea> </li> <li> <p> <label for="start-datetime">start:</label> <input data-bind="value: startdate" id="start-datetime" style="width:200px;" /> </p> <p> <label for="end-datetime">finish:</label> <input data-bind="value: enddate" id="end-datetime" style="width:200px;" /> </p> </li> </ul>
the problem is, transport read triggers transport update never triggers if explicity call datasource.sync(). is missing here?
your code not complete (you not showing result
or how trigger savechanges
see problem not updating content of datasource (meetingdatasource
).
in code copy fields result
, observableobject
never update content of datasource
. when this.set
, in context this
not datasource
when call sync
doing nothing.
try doing:
meetingdatasource.data()[0].set(`title`, this.title); meetingdatasource.sync();
this should trick!
Comments
Post a Comment