참고 : 이것은 대부분 KnockoutJS를 디버깅하고 이해하기위한 것입니다.
(이미 바운드 된) 뷰 모델에서 뷰를 새로 고치도록 Knockout을 명시 적으로 요청하는 방법이 있습니까? 나는 다음과 같은 것을 찾고있다 :
ko.refreshView();
나는 이것이 녹아웃을 의도 한 것이 아니라는 것을 이해하지만 디버깅 및 학습 목적으로 그러한 방법이 있는지 알고 싶습니다.
답변
전체 viewModel에서 무언가를 호출 할 수는 없지만 관찰 가능한 개별 개체에서 myObservable.valueHasMutated()
가입자에게 재평가해야한다는 사실을 알리기 위해 호출 할 수 있습니다 . 언급 한 것처럼 KO에서는 일반적으로 필요하지 않습니다.
답변
경우에 따라 바인딩을 제거한 다음 다시 적용하는 것이 유용 할 수 있습니다.
ko.cleanNode(document.getElementById(element_id))
ko.applyBindings(viewModel, document.getElementById(element_id))
답변
내 bindHTML knockout 바인딩 핸들러로 JSFiddle을 만들었습니다 :
https://jsfiddle.net/glaivier/9859uq8t/
먼저 바인딩 핸들러를 자체 (또는 공통) 파일에 저장하고 녹아웃 후 포함합니다.
이것을 사용하면 바인딩을 이것으로 전환하십시오 :
<div data-bind="bindHTML: htmlValue"></div>
OR
<!-- ko bindHTML: htmlValue --><!-- /ko -->