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 );
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:
{
$data: ...,
$parents,
$root
}
So if I understand your question, you can probably use ko.dataFor
here. Here's a simple example using dataFor
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With