extending observableArrays with linq.js
https://groups.google.com/d/topic/knockoutjs/MEtE642TrY0/discussion
HTML
<script src="http://knockoutjs.com/downloads/knockout-2.0.0.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/linq.js/2.2.0.2/linq.min.js "></script>
<input data-bind="value: searchTerm, valueUpdate: 'afterkeydown'" />
<hr/>
<ul data-bind="foreach: filteredItems">
<li data-bind="text: name"></li>
</ul>
JavaScript
ko.observableArray.fn.where = function(predicate) {
return Enumerable.From(this())
.Where(predicate)
.ToArray();
};
var ViewModel = function() {
this.items = ko.observableArray([
{ name: "one" },
{ name: "two" },
{ name: "three" },
{ name: "four" }
]);
this.searchTerm = ko.observable("");
this.filteredItems = ko.computed(function() {
var term = this.searchTerm();
return this.items.where(function(item) {
return item.name.indexOf(term) > -1;
});
}, this);
};
ko.applyBindings(new ViewModel());