2013-07-16 14 views
10

Nakavt değeri ciltleme jquery autocomplte ile çalışmaz. Nasıl çalışır?Knockout ve jQuery otomatik tamamlama

<input 
    type="text" 
    class="autocomplete" 
    data-bind="value: viewModelObservableValue" 
    name="MyValue" /> 

şablon render sonra bir girdi jQuery otomatik tamamlama başvuruyorum:

Ben bir şablon var. Bağlama işe yaramıyor. Benim jsfiddle'a bakın.

O $(..).autocomplete(..);

+0

tamam sizin için bir cevap aldık. İlginç soru –

cevap

17

Bu jQuery otomatik tamamlama gibi görünüyor change olayı kaçırıldı sonra ko.applyBindings(viewModel) gider durumunda çalışır. Bu yüzden işe yaramıyor.

Bunu düzeltmek için valueUpdate özelliğini blur olarak ayarlamanız gerekir. Tabii ki, bu öğeyi seçtikten sonra tetiklenmez, ilk önce bulanıklaştırmanız gerekir.

$(function() { 
 
    var availableTags = [ 
 
     "ActionScript", 
 
     "AppleScript", 
 
     "Asp", 
 
     "BASIC", 
 
     "C", 
 
     "C++", 
 
     "Clojure", 
 
     "COBOL", 
 
     "ColdFusion", 
 
     "Scheme" 
 
    ]; 
 
    $(".autocomplete").autocomplete({ 
 
     source: availableTags 
 
    }); 
 
}); 
 

 
var viewModel = { 
 
    myValue: ko.observable() 
 
}; 
 

 
ko.applyBindings(viewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script> 
 

 
<input type="text" class="autocomplete" data-bind="value: myValue, valueUpdate:'blur' " /> 
 

 
<div data-bind="text: myValue"></div>

+6

Süpermen sensin! Teşekkür ederim! – Andrei

+0

Teşekkürler! * Yani * özel ciltleme yaklaşımından çok daha kolay .... –