剣道ノックアウトを使用しています。
オートコンプリートをリモートデータにバインドしようとしています。http://rniemeyer.github.com/knockout-kendo/web/AutoComplete.htmlの基本的な例を使用して、次のことを試しました。ただし、入力がフォーカスを失うまで検索は更新されません。
「検索」は、すでにobservableArrayにある場合にのみ何かを検索します。
剣道オートコンプリートで提供される唯一のイベントは「変更」です。これは、入力がフォーカスを失った後にのみ発生します。
キーの押下をどのようにインターセプトし、search()の値にアクセスして、リモート呼び出しを行えるようにしますか?
さらに、アイテムが選択されたら、どのようにして「id 」の値にアクセスしますか?
ありがとうジェレミー
<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());
});