주어진 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
.