JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://agilityjs.com/docs/agility.min.js"></script>
JavaScript
/* This override is necessary for the code to work with JSFiddle's echo service. It is not relevant to the Agility code itself. */
$$.adapter.restful = function(_params){
var params = $.extend({
url: '/echo/json/',
dataType: 'json',
data: {'json': JSON.stringify(_params.data)},
}, _params);
$.ajax(params);
}
/* Begin actual code */
var statusItemProto = $$({
model: { text: ''} ,
view: { format: '<li data-bind="text" />' }
});
statusItemProto.persist($$.adapter.restful);
var statusForm = $$({
view: { format: '<form id="new-status"><textarea></textarea><input type="submit"><div id="statuses"></div></form>'},
controller: {
'submit &': function(e){
var _this = this;
e.preventDefault();
var item = $$(statusItemProto, {
model: {text: _this.view.$('textarea').val()}
});
item.bind('persist:save:success', function(){
$$.document.append(item, '#statuses');
_this.view.$('textarea').val('');
});
item.save();
}
}
});
$(document).ready(function() {
$$.document.append(statusForm);
});