jsViews example

HTML

<script src="http://www.jsviews.com/download/jsviews.js"></script>
<div id="shit">
    <table>
	    <thead>
	    	<tr>
			    <th>shit1</th>
			    <th>shit2</th>
			    <th>сумма</th>
		    </tr>
	    </thead>
	    <tbody data-link="{for report tmpl='#rowTemplate'}"></tbody>
    </table>
    <button class="addShit">добавить строку</button>
</div>

<script id="rowTemplate" type="text/x-jsrender">
	<tr>
		<td>
			<input type="text" data-link="{intToStr:shit1:strToInt}">
		</td>
		<td>
			<input type="text" data-link="{intToStr:shit2:strToInt}">
		</td>
        <td data-link="shit1+shit2"></td>
        <td>
            <button class="deleteShit">X</button>
        </td>
    </tr>
</script>

JavaScript

var app = app = {
    report: [{shit1: 1, shit2: 2}, {shit1: 3, shit2: 4}]
};

$.views.converters({
	intToStr: function(prop) {
		return ''+ prop;
	},
	strToInt: function(prop) {
		return parseInt(prop) || 0;
	}
});

$.link(true, '#shit', app)
    .on('click', '.addShit', function() {
        $.observable(app.report).insert({shit1:0, shit2:0});
    })
    .on('click', '.deleteShit', function() {
        $.observable(app.report).remove($.view(this).getIndex());
    });