2013-08-07 1 views
2

나는 녹아웃으로 Select2 컨트롤을 사용하고 있으며 select2 컨트롤의 minimumInputLength 옵션을 select2 컨트롤의 옵션 길이에 따라 동적으로 설정해야하는 경우에는 특별한 요구 사항이 있습니다. 예를 들어 100 개의 옵션이있는 경우 minimumInputLength를 2로 설정하고 100보다 작 으면 아무것도 설정하지 않아도됩니다 (0).knockout을 사용하는 select2가 동적으로 최소 입력 길이를 변경합니다.

다음 옵션을 시도했습니다. select2Combobox는 내가 만든 custombinding입니다.

1) select2가 바인딩되는 observableArray의 길이에 따라 2 또는 0을 반환하는 ko 계산 된 속성 (최소 입력 길이 설정에 바인딩 됨)을가집니다. 여기서 TypeAheadMinInputLength는 계산 된 속성입니다.

select2Combobox: { select2Options: { width: '100%', minimumInputLength: TypeAheadMinInputLength}, data: TypeaheadData} 

2)를 다시 기능이 구비되어 입력 어레이의 길이를 기준으로 2 또는 0을 반환하는 함수 호출 설정 minimumInputLength 바인딩.

select2Combobox: { select2Options: { width: '100%', minimumInputLength: getTypeAheadMinInputLength(TypeaheadData())}, data: TypeaheadData} 

어떤 제안

감사합니다.

+0

나는 분명히 [피들] (http://jsfiddle.net) 이것을 원할 것입니다 :)! – Tyblitz

답변

0

이 방법이 도움이 될지 모르지만이 내부 명령을 업데이트하여 주어진 select2에 대한 minimumInputLength 값을 동적으로 업데이트 할 수 있습니다. 그것은 hackish,하지만 작동 : 그것은 때마다 위젯

$('#id_of_select').data("select2").opts.minimumInputLength = 0 

그래서, 그것은 minimumInputLength의 값을 계산합니다 선택 2되지 않습니다,하지만 당신은 당신에게 변경 이벤트를 추가 할 수 있습니다 형성과 선택 2 업데이트 필요한