developer tip

knockout.js-DOM 요소에서 ViewModel 가져 오기

copycodes 2020. 10. 19. 08:12
반응형

knockout.js-DOM 요소에서 ViewModel 가져 오기


주어진 DOM 요소에서 바인딩 된 ViewModel JavaScript 개체를 가져올 수 있습니까?

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 );

미리 감사드립니다!


녹아웃에는 여기에 도움이 될 수있는 두 가지 유틸리티 방법 이 있습니다.

  • ko.dataFor 요소가 바인딩 된 ViewModel을 반환합니다.
  • ko.contextFor현재 요소의 "바인딩 컨텍스트"를 반환합니다. 이 메서드에서 반환하는 객체는 다음과 같은 것을 반환합니다.

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

따라서 귀하의 질문을 이해하면 ko.dataFor여기에서 사용할 수 있습니다. 다음은 간단한 예제 를 사용 dataFor.

참고 URL : https://stackoverflow.com/questions/14015497/knockout-js-get-viewmodel-from-dom-element

반응형