javascript - Writing an escaped/unescaped Observable in Knockout -


i have issue want store quoted strings , display unquoted while in form. first solution create 2 bindinghandlers 1 value , 1 text.

ko.bindinghandlers.escapedvalue = {     init : function (element, valueaccessor, allbindingsaccessor) {         var $element = $(element),             contentobservable = valueaccessor(),             currenttxt = ko.utils.unwrapobservable(contentobservable);          if (currenttxt) {             $element.val(unescape(currenttxt));         }          $element.change(function (e) {             contentobservable(escape($element.val()));         });     } };  ko.bindinghandlers.escapedtext = {     init : function (element, valueaccessor, allbindingsaccessor) {         var $element = $(element),             contentobservable = valueaccessor(),             currenttxt = ko.utils.unwrapobservable(contentobservable);          if (currenttxt) {             $element.text(unescape(currenttxt));         }          contentobservable.subscribe(function (newvalue) {             $element.text(unescape(newvalue));         });     } }; 

however gave me 2 issues 1) not live updating anymore after key down 2) when validation on values example character length checks length of quoted string.

how can write ko.escapedobservable() or ko.subscribable.fn.escaped()

i have gotten closer cant seem saving correct. displays , comparison when goto save values still unescped

ko.escapedobservable = function (initialvalue) {     var observableval = ko.observable(initialvalue),      result = ko.computed({         read: function () {             return unescape(observableval());         },         write: function (newvalue) {             return observableval(escape(newvalue));         }     });      this.tojson = function () {         return escape(observableval());     };      return result; }; 

====edit==== solution using 2 observables // escape , unescape text value

ko.escapedobservable = function (initialvalue) {     var observableval = ko.observable(initialvalue),      result = ko.computed({         read: function () {             return observableval();         },         write: function (newvalue) {             observableval(newvalue);         }     });      result.unescaped = ko.computed({         read: function () {             return unescape(observableval());         },         write: function (newvalue) {             observableval(escape(newvalue));         }     });      return result; }; 

ko.escapedobservable = function (initialvalue) {     var observableval = ko.observable(initialvalue),      result = ko.computed({         read: function () {             return observableval();         },         write: function (newvalue) {             observableval(newvalue);         }     });      result.unescaped = ko.computed({         read: function () {             return unescape(observableval());         },         write: function (newvalue) {             observableval(escape(newvalue));         }     });      return result; }; 

Comments

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -