次のコードを使用して、ビューに ajax を使用した jquery オートコンプリートがあります。
$('#QuickSearchProduct').autocomplete({
source: function (request, response) {
var term = request.term;
var url = url ? url : $(this.element).attr('data-autocomplete-url');
cache[url] = cache[url] || {};
if (term in cache[url]) {
response(cache[url][term]);
return;
}
var url = url ? url : $(this.element).attr('data-autocomplete-url');
lastXhr = $.getJSON(url, request, function (data, status, xhr) {
cache[url][term] = data;
if (xhr === lastXhr) {
response(data);
}
});
},
select: function (event, result) {
var callback_url = $(this).attr('data-callback-url');
console.log('url', callback_url);
var idContainer = result.item.id;
$.ajax({
url: callback_url,
dataType: 'json',
data: { idContainer: idContainer },
success: function (container) {
var newLine = BlankPriceListLine;
newLine.Barcode = container.Barcode;
newLine.IdContainer = container.IdContainer;
newLine.ContainerName = container.ContainerName;
newLine.SuggestedRP = container.SuggestedRP;
newLine.IdCurrency = container.IdCurrency;
newLine.IdTaxCode = container.IdTaxCode;
console.log('newLine', newLine);
vm.addLine(new MasterPriceListLines(newLine));
}
});
$(this).val('');
return false;
}
});
コードでは、オートコンプリートは製品をすばやく検索するためのものであり、結果で項目が選択されると、その項目がメソッド vm.addLine を使用してリストに追加されます。これはノックアウト js で行われます。問題は、既にリストにある結果を無効にしたいということです..オートコンプリートでその結果を無効にするにはどうすればよいですか?