2013-10-30 2 views
0

내 응용 프로그램에는이 동작과 함께 폼이 있습니다. 폼 필드 값이 입력이 포커스를 잃거나 사용자가 Enter 키를 누른 후 점진적으로 서버에 업로드됩니다. 초점이 맞지 않으면 (사용자 정의 지시문) 및 키 누름 (ng-keydown) 이벤트에 연결하여 수행됩니다. 동시에 나는 City Lookup (그리고 몇몇 다른 필드들도)을 위해 Angular-ui Bootstrap Typeahead 컨트롤을 사용하고있다. 선행 입력 잘 작동하지 않고각도 -Ui 부트 스트랩 선행 컨트롤 및 ng-keydown

<input type="text" name="city" 
ng-model="dispatcher.city" 
ng-keydown="dispatcher.inputKeyPress($event)" 
typeahead="obj.city as obj.city for obj in lookup('city', $viewValue)"> 

의 입력을하지만 도시 입력에 올 때,이 같은 작품 : 입력은 다음과 같이

  1. 사용자 시작 도시를 입력, 예를 들어, 론
  2. 제안을 선행 입력 표시 팝업
  3. 사용자가 런던을 선택하고 프레스
  4. 선행 입력을 입력은 런던 입력을 채 웁니다하지만 전송 값입니다 값이 론 A를 변경 한 입력 직후 서버.

나는 keypress 이벤트로 인해 두 가지 작업이 발생한다고 가정합니다. 유형 지정 프로세스가 그 방법을 처리하고 동시에 ng-keydown이 그 방식을 해석합니다. 두 가지 중 하나는 미리보기를 사용하여 이벤트를 "소비"해야하며 "계속 진행"하지 말아야하거나 ng-keydown 콜백은 추천 이벤트가 표시되는지 (즉 특정 이벤트를 건너 뛸 수 있도록) 알려야합니다.

나는 typeahead-on-select="onSelect($item, $model, $label)"으로 경기를했지만 어떻게 든 두 콜백 (inputKeyPressonSelect)을 동기화 할 수 없었습니다. 키 누름이 더 빨리 실행되는 것 같습니다.

어떤 방법을 제안합니까? 아니면 완전히 다른 건가요? 이것을 선행 입력 게다가

감사

멋진 컨트롤입니다.

+0

사용자가 앞 글자에없는 값을 입력 할 수있는 기능을 찾고 있습니까? – Trenton

+0

그 능력은 이미 있습니다, 사용자는 선입견 제안에서 선택하거나 새로운 제안을 입력 할 수 있습니다. - 잘 작동합니다. 다른 콜백 (키 누름)과 동기화 할 수 없습니다. – RastoStric

+0

모델의 실제 값에 선행 값을 바인딩하고 있습니까? (모델명)? 그게 문제 일 수 있습니다. 그렇지 않으면 어쩌면이 양식 필드 만 잃어버린 초점을 비활성화 할 수 있습니까? 나는 그것을 추적 할 수 있도록 키 누르기와 keydown을 묶었지만 필요한 것은 나타나지 않습니다. – Trenton

답변

0

keydown 이벤트 훅을 전혀 제거하지 마십시오. 실제로 필요하지 않은 것처럼 보입니다. 너의 논리는 선행의 선택 사건에 초점을 맞추고, 모든 경우에 가치 변화를 추적 할 것이다.

희망 하시겠습니까?

+0

팁 알렉스에 감사드립니다. 나는 그것을 시도해 봤습니다. 것은 "입력 저장"논리와 함께 선행없이 형식에 다른 입력이 있다는 것입니다. 논리 전체를 일관되게 유지하고 싶습니다. Typeahed 입력에서 키 누름 훅을 제거하고 onSelect를 대신 사용했을 때 사용자가 제안에 대한 옵션을 선택할 수있는 경우에 문제가 없었습니다.그러나 새 값을 입력하면 onSelect가 트리거되지 않고 입력 한 후 새 값이 저장되지 않으므로 "입력 저장"논리가 실패했습니다. 포커스를 잃어 버렸지 만 폼 동작이 일관성이 없습니다. – RastoStric

관련 문제