Używam Kendo-Knockout.
Usiłuję skłonić Autouzupełnianie do powiązania ze zdalnymi danymi. Korzystając z podstawowego przykładu pod adresem http://rniemeyer.github.com/knockout-kendo/web/AutoComplete.html Próbowałem następujących. Jednak, Szukaj nie jest aktualizowany, dopóki wejście nie straci ostrości.
"Szukaj„szuka czegoś, jeśli tak jest już w obserwowalnym Array.
Jedynym zdarzeniem dostarczonym z Autouzupełnianiem Kendo jest „zmiana”, która ponownie uruchamia się dopiero po utracie skupienia na danych wejściowych.
Jak przechwycić naciśnięcie klawisza i uzyskać dostęp do wartości search (), aby móc nawiązać połączenie zdalne?
Dodatkowo, w jaki sposób uzyskasz dostęp do wartości „ID„po wybraniu elementu?
Dzięki Jeremy
<strong><p style="margin-top: 100px;" data-bind="text: search"></p></strong>
<input data-bind="kendoAutoComplete: { data: choices, value: search,
dataTextField: "name", valueUpdate: "afterkeydown" }" />
<script type="text/javascript">
$(function () {
var myViewModel = function () {
var self = this;
this.choices = ko.observableArray([
{ id: "1", name: "apple" },
{ id: "1", name: "apple2" },
{ id: "1", name: "apple3" },
{ id: "2", name: "orange" },
{ id: "3", name: "banana" }
]);
this.selectedChoice = ko.observable();
self.search = ko.observable();
self.search.subscribe(function() {
console.log(self.search());
// would send search to $.ajax to get the remote data
});
};
ko.applyBindings(new myViewModel());
});
Odpowiedzi:
2 dla odpowiedzi № 1Można zrobić coś takiego:
<input data-bind="kendoAutoComplete: {
data: {},
minLength: 3,
dataTextField: "Name",
dataSource: {
type: "odata",
serverFiltering: true,
serverPaging: true,
pageSize: 20,
transport: {
read: "http://odata.netflix.com/Catalog/Titles"
}
},
value: selectedChoice }" />
Możesz przechowywać to w obiekcie JavaScript i również na nie wskazywać.
Próba: http://jsfiddle.net/rniemeyer/m8vVA/
0 dla odpowiedzi nr 2
następujące powiązanie z nokautem pozwala na bieżąco aktualizować filtr wyszukiwania, zmieniając się w modelu widoku:
<input data-bind="kendoAutoComplete:
{
value: value,
data: suggestions,
filtering: onSuggestionsChanged
}" />
wartość jest wybraną wartością, sugestie toobserwowalna tablica, którą wypełniasz wynikami i onSuggestionsChanged to funkcja w twoim viewmodelu, która jest wywoływana za każdym razem, gdy użytkownik zmienia tekst w polu.
Opis wydarzenia Kendo UI Filter