/ / Kendo-Knockout - jak powiązać Autouzupełnianie ze zdalnymi danymi? - knockout.js, kendo-ui

Kendo-Knockout - jak powiązać autouzupełnianie z danymi zdalnymi? - knockout.js, kendo-ui

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 № 1

Moż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