нокаут.js-получить ViewModel из элемента DOM



можно ли получить привязанный объект JavaScript ViewModel из данного элемента DOM?



ko.applyBindings( gLoginViewModel, document.getElementById("login-form") );
ko.applyBindings( gLoginViewModel, document.getElementById("register-form") );


и где - то еще - в довольно несвязанном коде-что-то вроде этого:



var viewModel = ko.getViewModel( formElement );
viewModel.someObservable( someData ); // observable available in all ViewModels


было бы даже лучше, если бы я мог сделать что-то вроде:



var viewModel = ko.getViewModel( someChildElement );


спасибо заранее!

341   1  

1 ответ:

нокаут имеет два методы что может помочь здесь.

  • ko.dataFor вернет ViewModel, к которому привязан элемент.
  • ko.contextFor возвращает "контекст привязки" текущего элемента. Объект, который вы получаете обратно из этого метода будет возвращать что-то вроде:

    { 
        $data: ...,
        $parents,
        $root
    }
    

так что если я понимаю ваш вопрос, вы, вероятно, можете использовать ko.dataFor здесь. вот простой пример используя dataFor.

Comments

    Ничего не найдено.