is is possible to get the binded ViewModel JavaScript object from a given DOM element?
ko.applyBindings( gLoginViewModel, document.getElementById("login-form") );
ko.applyBindings( gLoginViewModel, document.getElementById("register-form") );
and somewhere else - in rather unrelated code - something like this:
var viewModel = ko.getViewModel( formElement );
viewModel.someObservable( someData ); // observable available in all ViewModels
it would even be better if I could do something like:
var viewModel = ko.getViewModel( someChildElement );
Thanks in advance!
Knockout has two utility methods that might help here.
ko.dataFor
will return the ViewModel that the element is bound to.ko.contextFor
returns the "binding context" of the current element. The object you get back from this method will return something like:So if I understand your question, you can probably use
ko.dataFor
here. Here's a simple example usingdataFor
.