JSFiddle - React, Tailwind, and code Playground
by Valerie Ren
HTML
<section>
<div>
<button data-bind="click: loadData">Load Data</button>
</div>
<div data-bind="visible: partners().length > 0" >Query returned <span data-bind="text: partners().length"></span> records</div>
<div>
<section data-bind="foreach: partners" >
<article>
<div title="Click to Update" data-bind="click: $parent.showSelectedPartner"> <span data-bind="text: id"></span>
<span data-bind="text: pName"></span>
</div>
</article>
</section>
</div>
</section>
JavaScript
function partner(id, name) {
var self = this;
self.id = ko.observable(id);
self.pName = ko.observable(name);
}
function viewmodel() {
var self = this;
self.initialdata = ko.observableArray([
{ id: 1, name: "name1" } ,
{ id: 2, name: "name2" } ,
{ id: 3, name: "name3" } ,
{ id: 4, name: "name4" } ,
]);
self.partners = ko.observableArray();
self.selectedPartner = ko.observable();
self.loadData = function () {
self.partners([]);
ko.utils.arrayForEach(self.initialdata(), function (item) {
self.partners.push(new partner(item.id, item.name));
});
};
self.showSelectedPartner = function (selected) {
alert(selected.pName());
}
}
ko.applyBindings(new viewmodel());