knockout.js data on page not updating when updated in modal -
i'm using knockout.js , twitter bootstrap's modal plugin data-bind user's email address can change via modal. however, i'm expecting see email address simultaneously update on page when i'm editing inside input box inside modal. wrong data-binding?
here's jsfiddle of below: http://jsfiddle.net/xn58k/1/
var model = { "schoolemailaddress": "email@domain.com", "firstname": "john", "lastname": "doe", "middlename": null, "id": 3 }; $(document).ready(function() { var viewmodel = new accountsettingsviewmodel(); ko.applybindings(viewmodel); viewmodel.user(model); }); function user(data) { var self = this; ko.mapping.fromjs(data, {}, this); } function accountsettingsviewmodel() { var self = this; this.user = ko.observable(); this.editemail = function() { $("#editemailmodal").modal("show"); } } <div data-bind="with: user"> <div>email address <a href="javascript:void(0);" data-bind="click: $parent.editemail">edit</a></div> <div><label data-bind="text: schoolemailaddress"></label></div> </div> <div id="editemailmodal" class="modal hide fade" data-bind="with: user"> <div class="modal-header"> <a class="close" data-dismiss="modal">×</a> <h3><span class="icon-envelope" style="vertical-align: middle"></span> edit email address</h3> </div> <div class="modal-body"> <div class="modalrow"> <div class="modallabel">email address:</div> <div><input type="text" data-bind="value: schoolemailaddress" class="span4" /></div> </div> </div> <div class="modal-footer"> <a href="javascript:void(0);" class="btn-gray swatch" data-dismiss="modal">cancel</a> <a href="javascript:void(0);" class="btn-school swatch" data-dismiss="modal">save changes</a> </div> </div>
it looks have user constructor function not being used, none of user properties being made observable.
you want like:
viewmodel.user(new user(model)); this send user through mapping plugin (looks not referenced in fiddle).
http://jsfiddle.net/rniemeyer/xn58k/2/
that looks issue question. not save/cancel button.
Comments
Post a Comment