javascript - How to in-place edit boolean value with x-editable -
i want display boolean value on page (actually it'll cells in table), , has editable. furthermore, it's not checkbox, spell out "false" , "true". utilize bootstrap 3, , latest knockout. decided utilize x-editable bootstrap 3 build. utilize knockout custom binding: https://github.com/brianchance/knockout-x-editable.
i figured implement need configure x-editable in popup mode, , select type. supply selections ("true" , "false" in case) in parameter. fine , dandy, except in-place dialog doesn't display current value when pops up. how can prepare that? tried 'defaultvalue' parameter, didn't help.
here fiddle: http://jsfiddle.net/csabatoth/7ybvh/4/
<span data-bind="editable: value, editableoptions: { mode: 'popup', type: 'select', source: '[{ value: 0, text: "false" }, { value: 1, text: "true" }]' }"> </span> simple model:
function viewmodel() { var self = this; self.value = ko.observable(false); }
the problem have true , false boolean values in observable x-editable uses 0 , 1 values represent "true" , "false" selection.
this causes 2 problems:
when initialized x-editable not know "false" means 0 no default value selected if select in pop-up editorvalue observable contain "0" , "1" strings , not false , true boolean values... you can solve both problems intoroducing computed property translates between boolean , numerical values:
self.computed = ko.computed({ read: function() { homecoming self.value() ? 1 : 0 }, write: function(newvalue) { self.value(newvalue == '1') } }); and need utilize property in editable binding:
<span data-bind="editable: computed, editableoptions: { mode: 'popup', type: 'select', source: '[{ value: 0, text: "false" }, { value: 1, text: "true" }]' }"> </span> demo jsfiddle.
javascript knockout.js twitter-bootstrap-3 x-editable
No comments:
Post a Comment