Вот когда сделаешь мне такое в столько строк кода и на таком уровне абстракции, сделаешь НА СЕРВЕРЕ, тогда приходи.
<script src='//mychamber.ru/build/ui.js'></script>
<style>
.list-item {
cursor : default;
background-color : #bfc7ff;
font-size : 25px;
overflow : hidden;
transition : 0.4s;
}
.list-item.add {
height : 0;
}
.list-item.remove {
height : 0;
}
</style>
<div controller="Ctrl">
<button click="add(newText)">добавить</button>
<label>новый пункт: <input model="newText"></label>
<label>фильтр: <input model="filterText"></label>
<ul>
<li class="list-item" repeat="item in items |filter:filterText">
<div class="post">{item}</div>
</li>
</ul>
</div>
<script>
function Ctrl() {
items = [54, 2, 4]
add = function(text) { items.unshift(text) }
}
</script>