Knockout.js foreach: but only when comparison is true

try this:

   <div data-bind="foreach: editingItem.columns">
         <!-- ko if: Selected-->
         <div data-bind="text: Name"></div>
          <input type="text"/>
             <!-- /ko -->

Currently that's not possible with knockout.js, but it's an interesting feature. You should file a bug report/contact the author to consider it for a future version.

Way 1:

<div data-bind="foreach: entry">
     <div data-bind="if: entry.number > 10"></div>
</div>

Way 2:
Write a custom filter method that gives you an array of elements that match your conditions and use this in your foreach.


I think it would be better to use the built in arrayFilter method ( see http://www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html )

viewModel.filteredEntries = ko.computed(function() {

    return ko.utils.arrayFilter(this.entries(), function(item) {
        return item.number > 10;
    });

}, viewModel);

Then you can just databind to the filteredEntries as you would normally