I have the below code and I'm confused why is the second alert displaying the first view model (vm1) instead of the second one (vm2)?
<div id="main">
<div data-bind="testBinding: vm1"></div>
<div data-bind="testBinding: vm2"></div>
</div>
<script>
function vm1() {
this.firstName = "test first name"
}
function vm2() {
this.lastName = 'test last name';
}
ko.bindingHandlers.testBinding = {
init: function(element, valueAccessor, allBindings, viewModel,
bindingContext) {
alert(JSON.stringify(bindingContext.$data))
},
};
ko.applyBindings(new vm1(), document.getElementById('main'));
</script>