2014-10-08 3 views
0

내 양식에는 동일한 기능을위한 두 개의 컨트롤이 있지만 컨트롤 유형이 서로 다르다. 하나는 텍스트 상자이고 다른 하나는 드롭 다운 목록이다.Knockout을 사용하여 해당 UI를 업데이트하는 방법은 무엇입니까?

내 경우에 사용자가 드롭 다운에서 옵션을 선택하면 텍스트 상자 값이 동적으로 업데이트되지만 텍스트 상자에 값을 입력 할 때 문제가 발생하면 드롭 다운 목록이 업데이트되지 않습니다. 그가 단일 문자를 입력하면 잘 작동하지만 문자가 아닌 코드를 입력 할 때 문제가 발생합니다. 여기

JS 바이올린 :

    jsfiddle.net/rohit421991/c38hkdag/32/ 

나는 내가 잘못 이벤트를 사용하고 난이 이벤트의 keyup 사용하고 생각합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇인지 알려주십시오. 어떻게 해결할 수 있습니까?

답변

1

좋아요. 솔루션을 찾은 것 같아요. :) KO를 처음 사용하는 것을 염두에 두십시오!

것부터 먼저 ...의 keyup 바인딩에 접선하는 것은 그래서 여기에 있습니다 .... 더 의미가 서브 스크라이브처럼 뭔가를해야만, KO에서이 작업을 수행 할 수있는 길을 잘못처럼

을 느낀다 내 솔루션입니다 :

jsfiddle.net/2kx9g6es/8/ 

나는 몇 가지 사소한 것들을 변경했습니다 :

  1. 는 소문자 이름을 가지고 데이터 배열을 변경
  2. 대구에 VM에
  3. 이름 텍스트 e는 코드가 더 의미가 있기 때문에 + 텍스트는 요소 attr로 사용되므로 텍스트를 사용하지 않는 것이 좋습니다.
  4. 는 코드가 가입 주위에 혼란 Wii과 약간있을 수있는 이상한 오류

을 피하기 위해 준비에 JQuery와의로 구독 지금

  • 가입하여, 이벤트를 넣어 사용 도랑,하지만 난 얼굴을 박살 때문이었다 키보드가 작동 할 때까지 ... 기본적으로 변경되는 것은 변경중인 항목 중 하나입니다. 다른 항목을 살펴보고 값이 올바른지 확인하십시오. 그렇지 않은 경우 업데이트하십시오. 그 주위의 여분의 코드는 하나의 가입을 해결하는 것입니다. 다른 하나를 트리거하는 것입니다 (일종의 루프).

    이렇게하려면 좀 더 우아하고 재사용 할 수있는 방법이있을 것입니다. 이게 효과가있다.

    코드 개선을 원한다면 문제를 해결하기 위해 사용자 지정 지시문을 만드는 것이 좋습니다. 아니면 내 구독자를 더 논리적으로 구조를 바꿀 수도 있습니다.

    희망 하시겠습니까?

  • +0

    기타 ... KO 3.0을 사용하는 이유는 무엇입니까? –

    +0

    그게 유일한 공식 CDN이기 때문에 아 –

    +0

    답장을 보내 주시면 감사하겠습니다. 그러나 사용자가 텍스트 상자에있는 코드를 누를 때 드롭 다운에 데이터를 채우고 싶습니다. 이제 텍스트 상자에서 포커스를 이동할 때 데이터가 표시됩니다. –

    관련 문제