2013-07-16 32 views
10

L'associazione del valore di knockout non funziona con autocomplte jquery. Come farlo funzionare?Completamento automatico di Knockout e jQuery

Ho un modello:

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

Dopo il rendering modello Mi candido jQuery completamento automatico su un ingresso. Il binding non funziona. Vedi il mio jsfiddle.

funziona solo se ko.applyBindings(viewModel) va dopo $(..).autocomplete(..);

+0

bene ottenuto una risposta per voi. Interessante domanda –

risposta

17

Sembra jQuery completamento automatico dirottato l'evento change. Ecco perché non funziona.

Per risolvere questo problema, è necessario impostare la proprietà valueUpdate su blur. Ovviamente, questo non si innescherà dopo aver selezionato l'oggetto, prima dovrai sfocare.

$(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

Sei un superuomo! Grazie! – Andrei

+0

Grazie! * Così * molto più facile dell'approccio vincolante personalizzato .... –

Problemi correlati