7

Ben AngularUI's typeahead feature kullanan bir metin alanı var sonuçlanır. Şöyle görünüyor:Eğik UI: Kuvvet typeahead

<input typeahead="eye for eye in autocomplete[column] | filter:$viewValue"> 

Kullanıcı, oluşturulan listeden bir seçenek seçmek için zorlamak istiyorum. Listede tam olarak göründüğü gibi bir şey yazmazlarsa, bulanıklıkta (metin alanının dışına tıklandığında), metin alanının değerini orijinal değerine sıfırlamasını isterdim.

typeahead direktifin bu işlevselliği parçası mıdır, yoksa bunu uzatmak gerekir? Google ve stackoverflow'ta yaklaşık 10 dakika arandım, ancak alakalı bir doküman bulamadım.

kimse bunu gerçekleştirmek için doğru yönde işaret eder misiniz? typeahead-editable="false":

+0

Söz konusu tam eşleşmeleri etkinleştirmek filtrelemek için ikinci bir argüman vardır, belki de o iş yapabilir? 'filter: $ viewValue: true' – jpmorin

+0

Hmm, sayfamdaki typeahead kırdı. Angular'ın belirli bir sürümü var mı? –

+0

Ayrıca varolan sonuçları zorlamak için Ui-Boostrap bir öznitelik var: 'typeahead-editable = "false" '(typeahead-editable (Defaults: true): Model değerleri yalnızca pop-up'lardan seçilenlere mi?) – jpmorin

cevap

12

mevcut değerleri sadece zorlamak için eklenti bir özelliği yoktur. Varsayılan değer true'dur.

Yalnızca $modelValue yanlış bir değer seçildiğinde boş olarak ayarlanmak üzere ayarlanıyor ve bu aslında gerekliyse, başka bir şey yazamayacağız. $viewValue, girilen son metin ile kalır. $viewValue'u sıfırlamak için alanınıza bir bulanıklık olayı bağlayabilirsiniz? İşte

görüntülenen seçilen değer ile JsFiddle geçerli: http://jsfiddle.net/ZjPWe/61/

Ayrıca bir değer seçildiğinde bir geri gereken özelliklerden birini typeahead-on-select kullanabilirsiniz, ama hiçbir değer olduğundan bu typeahead-editable="false" ile çalışacak emin değilim seçiliyor.