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