JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-2.0.0.js"></script>
<input type="text" data-bind="value: text1" />
<button data-bind="click: text1.reset">Reset</button>
<br />
<input type="text" data-bind="value: text2" />
<button data-bind="click: text2.reset">Reset</button>
<br />
<button data-bind="click: resetAll">Reset All</button>
JavaScript
ko.extenders.reset = function(target) {
var initialValue = target();
target.reset = function(){
target(initialValue);
}
return target;
}
function createViewModel(){
var self = {};
self.text1 = ko.observable('foo').extend({ reset: true });
self.text2 = ko.observable('bar').extend({ reset: true });
self.resetAll = function(){
for (key in self){
if (ko.isObservable(self[key]) && typeof self[key].reset == 'function'){
self[key].reset()
}
}
}
return self;
}
var viewModel = createViewModel();
ko.applyBindings(viewModel);