Knockout - jQuery event handling
by Pratik Bhattachary
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-debug.js"></script>
<input type="text" placeholder="Add Tags" data-bind="value: tagToAdd, valueUpdate: 'afterkeydown'"/>
<button data-bind="{click: addTag}">+</button>
<div data-bind="template: 'tagsTemplate'"></div>
<script id="tagsTemplate" type="text/html">
<ul data-bind="foreach: tags">
<li>
<span data-bind="text: name"></span>
<button class="tag-delete">Delete</button>
</li>
</ul>
</script>
JavaScript
$(function() {
var data=[{name: "Pratik"}, {name: "Vaun"}, {name: "Pradeep"}];
var viewModel = {
tags: ko.observableArray(data),
tagToAdd: ko.observable(""),
addTag: function() {
this.tags.push({name: this.tagToAdd()});
this.tagToAdd('');
}
};
$(document).on('click', '.tag-delete', function() {
var itemToRemove = ko.dataFor(this);
viewModel.tags.remove(itemToRemove);
});
ko.applyBindings(viewModel);
});