main wanted list FIDDLE
-add -remove -prevent duplicates -disable add button when empty
by Kohut Mykola
HTML
<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
<div data-bind="with: idea">
<input type="text" data-bind='value:itemToAdd, valueUpdate: "afterkeydown"' />
<input type="button" id="addButton" data-bind="click:$parent.addItem, enable: itemToAdd" value="add" />
<ul data-bind="foreach:allItems">
<li> <span data-bind="text:$data"></span>
<input type="button" data-bind="click:$root.removeItem.bind($parent, $data)" value="-" />
</li>
</ul>
</div>
JavaScript
var vm = {
idea: ko.observable({
itemToAdd: ko.observable(""),
allItems: ko.observableArray()
}),
addItem: function () {
if (this.allItems.indexOf(this.itemToAdd()) < 0) {
var item = this.itemToAdd();
this.allItems.push(item);
this.itemToAdd("");
}
},
removeItem: function (data) {
this.allItems.remove(data);
}
};
ko.applyBindings(vm);