1. how to push all list into observal array
self.inverters = ko.observableArray([]);
self.loadInverters = function(inverters) {
var array = self.inverters();
ko.utils.arrayPushAll(array, inverters);
self.inverters.valueHasMutated();
};
2. filter list for objserval array
function homeViewModel() {
var self = this;
self.teams = ko.observableArray([]);
self.filterText = ko.observable("");
self.filteredTeams = ko.computed(function() {
if (self.filterText().length > 0) {
var teamsArray = self.teams();
return ko.utils.arrayFilter(teamsArray, function(team) {
return ko.utils.stringStartsWith(team.location.toLowerCase(), self.filterText())
});
}
});
}
3. multiple bind
<a data-bind="html: name, attr: { href: url }">
4. bind to simple array of strings
When using a template: ${$data}
When not using a template: $data
<ul data-bind="foreach: $root"> <li data-bind="text: $data"></li> </ul>
$root keyword does the trick.
or
<ul data-bind='foreach: list'>
<li>
<input data-bind='value: $parent.list[$index()]' />
</li>
</ul>