JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.default.min.css">
<script src="http://cdn.kendostatic.com/2012.2.913/js/kendo.all.min.js"></script>
<div id="example">
<div>
<button data-bind="click: addProduct" class="k-button">Add New</button>
</div>
<ul data-template="input-template" data-bind="source: products">
</ul>
<ul>
<li>
<button data-bind="click: saveToString" class="k-button">Prepare To Save</button>
</li>
<li>
<button data-bind="click: restoreFromString" class="k-button">Restore On Load</button>
</li>
</ul>
<div id="previewpane">
</div>
</div>
<script id="input-template" type="text/x-kendo-template">
<li>
<input type="text" data-bind="value: data" class="k-textbox" />
<button data-bind="click: deleteProduct" class="k-button">Delete</button>
</li>
</script>
CSS
.demo-section {
width: 600px;
min-height: 200px;
}
.metrotable > tbody > tr > td {
font-size: 12px;
}
.metrotable > thead > tr > th {
font-size: 14px;
padding-top: 0;
}
.metrotable > tfoot > tr > td {
padding-right: 10px;
}
#example .configuration {
margin-bottom: 10px;
width: 190px;
}
.configuration label {
display: block;
float: none;
}
.configuration .name {
margin-top: -3px;
width: 130px;
}
.code-sample {
clear: right;
}
#previewpane{
margin-top: 20px;
padding: 10px;
border: 1px solid #666;
}
JavaScript
$(document).ready(function() {
var viewModel = kendo.observable({
productName: "Product name",
addProduct: function() {
this.get("products").push({
//data: this.get("productName")
});
},
deleteProduct: function(e) {
// the current data item (product) is passed as the "data" field of the event argument
var product = e.data;
var products = this.get("products");
var index = products.indexOf(product);
// remove the product by using the splice method
products.splice(index, 1);
},
saveToString: function(e){
var data = JSON.stringify(this.get("products"));
$("#previewpane").html(data);
},
restoreFromString: function(e){
var jsonString = $("#previewpane").html();
var json = JSON.parse(jsonString);
this.set("products", json);
},
products: [
{ data: "Hampton Sofa" },
{ data: "Perry Sofa" },
{ data: "Donovan Sofa" },
{ data: "Markus Sofa"}
]
});
kendo.bind($("#example"), viewModel);
});