2013-07-08 2 views
0

나는 카트 객체 목록을 반복하면서 녹아웃 템플릿을 사용하고 있습니다. 템플릿에서 옵션 텍스트와 옵션 값으로 이름을 사용하는 모든 제품에 대한 드롭 다운을 채 웁니다. 해당 텍스트 영역에 드롭 다운 목록에 바인딩 된 개체의 속성 인 제품 설명을 채워야합니다. 이 작업을 수행하는 방법이 없거나 jQuery를 사용해야합니까? 도움 주셔서 감사합니다. 여기knockoutjs를 사용하여 템플릿의 드롭 다운에서 선택한 항목으로 텍스트 영역 업데이트

<script type="text/html" id="edit-template"> 
    <div class="row edit"> 
     <div class="span3"> 
      <select data-bind=" options: $root.products, optionsText: 'Name', optionsValue: 'Name', value: Name, optionsCaption: 'Select a Product'"></select> 
     </div> 
     <div class="span4"> 
      <!-- This is where I'm not sure what I need to do for this text area --> 
      <textarea class="span4" rows="3" data-bind="value: Description"></textarea> 
     </div> 
     <div class="span1"> 
      <button class="btn btn-primary" style="margin-top:20px;" data-bind="click: $root.save">Save</button> 
     </div> 
    </div> 
</script> 

UPDATEfiddle이다. 이 경우 이름으로 업데이트 된 텍스트 상자와 설명이 업데이트 된 텍스트 영역을보고 싶습니다. 그래서 완전히 공개, 내 애플 리케이션은 실제로 장바구니와 아무 상관이 없지만, 독자가 애플 리케이션의 비즈니스 도메인 지식을 이해할 필요가 없도록 장바구니 예제 로이 질문을 단순화하려고했습니다.

업데이트 2이 트릭해야 바이올린

+0

모델을 포함시킬 수 있다면 도움이됩니다. 바이올린을 만들 수 있니? 나는 당신이 그것을 쉽게 성취하려고 노력하고 있다고 생각합니다. – DoctorMick

+0

'$ root'는 약간 이상하게 들립니다. '$ 데이터 '를 기대합니다. 템플릿을 어떻게 사용합니까? 바이올린은 분명 도움이 될 것입니다. – Andreas

+0

물론, 나는 바이올린으로 질문을 업데이트했다. 또한 @Andreas가 지적했듯이'$ root' 사용법은 아마도 suspsect로 보일 것입니다. 그러나 실제 응용 프로그램은 좀 더 복잡하고 뷰 모델을 그대로 처리해야합니다. 나는 이미 그것을 리팩터링하려고 시도했고 그것을 되돌려 놓으라고했다. – Dmase05

답변

2

에 제작 사소한 변화 : http://jsfiddle.net/trr5e/3/

확인을 선택한 항목을 보유하고 선택 요소에 그것을 연결할 수 이는 ko.observable이 있는지 : 당신이 다른 컨트롤에서 선택한 항목의 속성을 사용할 수 있습니다보다

<select data-bind="options: $root.products, optionsText: 'Name', value: selectedProduct, optionsCaption: 'Select a Product'"></select> 

:

<input type="text" data-bind="value: selectedProduct() ? selectedProduct().Name : ''"/> 
+0

감사합니다. @mhu, 이것은 잘 돌아갔습니다. +1은 실제 시나리오뿐만 아니라 예제 바이올린에 쉽게 적응할 수있는 솔루션입니다. – Dmase05

관련 문제