1
foreachノックアウトループでjQueryオートコンプリート拡張を統合しようとしています。私はカスタムバインディングとオートコンプリートを作成しました。しかし、オートコンプリート後、私は観察可能なアイテムモデルを更新する必要があり、それを行う方法を理解できません。カスタムknockoutjsバインディングで観測されたモデルを更新する
self.findValueCallback = function(item) {
return function(event, data, formatted) {
//u have access to particular item
}
}
と:
<!-- ko foreach: items -->
<input data-bind="autoComplete: { source: '/products/item-search-ajax', options: { delay: 100, max: 20, minChars: 2, extraParams: { itcode: 1 }}, findCallback: $parent.findValueCallback }, value: PartNumber" type="text">
<!-- /ko -->
<script type="text/javascript">
ko.bindingHandlers.autoComplete = {
init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
var settings = valueAccessor();
var source = settings.source;
var options = settings.options;
var findCallback = settings.findCallback;
$(element).autocomplete(source, options);
$(element).result(findCallback);
ko.bindingHandlers.value.init(element, valueAccessor, allBindings);
},
update: function(element, valueAccessor) {
var value = valueAccessor();
ko.bindingHandlers.value.update(element,valueAccessor);
}
};
function QuoteViewModel() {
var self = this;
self.items = ko.observableArray(...);
self.findValueCallback = function(event, data, formatted) {
// Need to update Item model here from autocomplete
};
}
</script>
jQuery UI Autocomplete?これが完了しました。既存のバインディングハンドラを使用します。 http://gvas.github.io/knockout-jqueryui/autocomplete.html – Tomalak
これは別のjqeuryオートコンプリートです。そして私は既にオートコンプリート拡張に接続することができました。観察可能なモデルをカスタムバインドから更新する方法はわかりません。 –
さて、オートコンプリートライブラリはどちらですか? – Tomalak