부분 뷰를 바인딩하기 위해 ko.applyBindings를 호출할 수 있습니까?
나는 녹아웃을 사용하고 있습니다.JS 및 메인 뷰 및 뷰 모델이 있습니다.별도의 하위 보기 모델이 바인딩되는 다른 보기가 있는 대화 상자(jQuery UI 대화 상자)를 팝업합니다.
대화 내용의 HTML은 AJAX를 사용하여 검색되므로 전화할 수 있습니다.ko.applyBindings
요청이 완료되면 대화 상자 div 내의 ajax를 통해 로드된 HTML 부분에만 하위 뷰 모델을 바인딩합니다.
이것이 실제로 가능한가요?아니면 페이지를 처음 로드하고 호출할 때 모든 뷰와 뷰 모델을 로드해야 합니까?ko.applyBindings
한 번?
ko.applyBindings
는 루트로 사용하는 DOM 요소인두 번째 파라미터를 받아들입니다.
이를 통해 다음과 같은 작업을 수행할 수 있습니다.
<div id="one">
<input data-bind="value: name" />
</div>
<div id="two">
<input data-bind="value: name" />
</div>
<script type="text/javascript">
var viewModelA = {
name: ko.observable("Bob")
};
var viewModelB = {
name: ko.observable("Ted")
};
ko.applyBindings(viewModelA, document.getElementById("one"));
ko.applyBindings(viewModelB, document.getElementById("two"));
</script>
따라서 이 기술을 사용하여 대화상자에 로드하는 동적 콘텐츠에 viewModel을 바인딩할 수 있습니다.전반적으로, 당신은 단지 전화하지 않도록 조심하고 싶을 뿐이다.applyBindings
여러 이벤트 핸들러가 연결되기 때문에 동일한 요소에 여러 번 사용됩니다.
Niemeyer의 답변이 질문에 대한 보다 정확한 답변이지만, 다음을 수행할 수도 있습니다.
<div>
<input data-bind="value: VMA.name" />
</div>
<div>
<input data-bind="value: VMB.name" />
</div>
<script type="text/javascript">
var viewModels = {
VMA: {name: ko.observable("Bob")},
VMB: {name: ko.observable("Ted")}
};
ko.applyBindings(viewModels);
</script>
즉, DOM 요소를 지정할 필요가 없으며 다음과 같이 여러 모델을 동일한 요소에 바인딩할 수도 있습니다.
<div>
<input data-bind="value: VMA.name() + ' and ' + VMB.name()" />
</div>
런타임에 커스텀 모델을 요소에 바인드할 수 있었습니다.코드는 http://jsfiddle.net/ZiglioNZ/tzD4T/457/ 입니다.
흥미로운 비트는 정의하지 않은 요소에 data-bind 속성을 적용한다는 것입니다.
var handle = slider.slider().find(".ui-slider-handle").first();
$(handle).attr("data-bind", "tooltip: viewModel.value");
ko.applyBindings(viewModel.value, $(handle)[0]);
이 사진을 보시면with
바인딩 및controlsDescendantBindings
http://knockoutjs.com/documentation/custom-bindings-controlling-descendant-bindings.html
언급URL : https://stackoverflow.com/questions/7342814/can-you-call-ko-applybindings-to-bind-a-partial-view
'programing' 카테고리의 다른 글
레일에서 JSON 문자열을 JSON 어레이로 변환하시겠습니까? (0) | 2023.03.13 |
---|---|
PostgreSQL 반환 결과를 JSON 어레이로 설정하시겠습니까? (0) | 2023.03.13 |
http에서 JSON 응답을 얻는 방법.얻다 (0) | 2023.03.13 |
SQL에서 JSON으로 - SQL 2016에서 객체 배열에서 값 배열로 (0) | 2023.03.13 |
JSON 구문은 오브젝트에 중복된 키를 허용합니까? (0) | 2023.03.13 |