꽤 일반적인 질문이 있다고 생각하지만 특정 응용 프로그램 용입니다. 간단히 드롭 다운의 초기 값과 동일한 드롭 다운에 사용자 정의 속성을 설정하는 것이 가능한지 알고 싶습니다. ,Knockout.js - 모델에 영구적으로 바인딩하지 않고 드롭 다운의 속성 설정
<select data-bind="options: availableSlots, attr: { preset: SlotPosition }, event: {'change', myChangeRoutine} " ></select>
을 위의 예에서 :이 값은 녹아웃 뷰 모델 값에서 구속 될 것이다,하지만 난 그것을 변경하는 경우, 그 속성의 값이 변경되지 않도록이 영구적으로 구속하고 싶지 않아 preset
이 내 속성이며 내 뷰 모델에있는 SlotPosition
으로 설정하고 드롭 다운이 처음에 자동으로 설정됩니다. availableSlots
은 ko.observableArray()로 viewmodel에 반환하는 슬롯 1 - x 개수의 항목이있는 MVC 서버 측에서 만든 SelectListItem입니다. (그것은 주어진 값에 대해 설정해야합니다 나는 참으로 Selected
를 설정 서버 측 코드이며, 옵션을 구축 할 수 있습니다.)
위의 예는 내 모델의 값 SlotPosition
내 속성 preset
을 결합하는 것 , 그러나 나는 영구적으로 바인딩하는 대신 변경 될 때까지 그 값을 기억하기를 원한다. 내가 가지고있는 문제는 myChangeRoutine
에서, preset
의 값은 이미 드롭 다운이 변경된 것입니다. 드롭 다운의 값을 변경하고 myChangeRoutine
이 실행될 때 이전 값을 사용하여 작업을 수행 할 수 있도록이 기능이 필요합니다.
가입하여 함께 나는 이것이 당신이 여기에서 찾고있는 것은 내가 그렇게 생각 바이올린 링크 jsfiddle.net/supercool/74dh736s/11 –
입니다 바랍니다. 이 코드를 수정하여 http://jsfiddle.net/navyjax2/Ls5aw9xs를 작성하여 코드에서 수행하려고했던 작업과 일치시킵니다. 그러나 어떤 이유로, 당신의 기준선을 사용하여 작동하지만, myChangeRoutine이 실제 코드에서 실행될 때까지 새로운 값을 여전히'self.SlotPosition()'에 설정합니다. 그래서 맥스가 제안한 방식대로갔습니다. 최종 코드 http://jsfiddle.net/navyjax2/7kkuwsLa/ – vapcguy
'vapcguy'를 보시면 더 좋은 방법으로 이것을 얻을 수 있습니다 (더 깨끗한 방법). 게시 된 답변을 확인하십시오. 'MaxBrodin' 언급'peek()'은 정말 유용하지만, 당신의 경우 코드를 줄이는 더 좋은 대안이 있습니다. –