Skip to content

Instantly share code, notes, and snippets.

@jayhjkwon
Created June 17, 2013 02:45
Show Gist options
  • Save jayhjkwon/5794342 to your computer and use it in GitHub Desktop.
Save jayhjkwon/5794342 to your computer and use it in GitHub Desktop.
Reset/Undo in Knockout.js
ko.extenders.resettable = (target, option) ->
if option
original = ko.utils.unwrapObservable(option.initialValue) ? ''
if $.isArray(original)
copiedOriginal = $.extend(true, [], original)
else if typeof original is 'object'
copiedOriginal = $.extend(true, {}, original)
else
copiedOriginal = original
target.reset = ->
if copiedOriginal
if $.isArray(copiedOriginal)
target.removeAll()
$.each(copiedOriginal, (index, value) -> target.push(value) )
else
target(copiedOriginal)
return target;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment