【发布时间】:2019-09-03 13:49:58
【问题描述】:
我有一个自动完成功能,它正在调用一项服务来根据自动完成功能的参数过滤列表。进入页面后,我收到错误“无法设置未定义的属性“_renderItem””。我看到这在其他地方使用没有问题。不确定出了什么问题。
尝试在没有任何实际进展的情况下进行重构。
$(this).autocomplete({
source: function (request, response) {
app.ajax({
values: {
searchDesc: request.term,
codeSet: filter.codeSet
},
url: 'Services/Workflow.svc/GetLOCsWCodeSetList',
indicatorId: c.SILENTAJAXINDICATOR
}).done(function (data, status, jqXhr) {
var tablesData = [];
tablesData = $.map(data.d, function (item) {
return { label: item.Description, value: item.Description, Key: item.ID, ProcedureCode: item.ProcedureCode };
});
response(tablesData);
});
},
minLength: 3,
change: changeEvent,
select: selectEvent
}).autocomplete('instance')._renderItem = function (ul, item) {
let _aitem = item.label;
if (_aitem.indexOf('refine entry') > -1) {
_aitem = '<div class="ac-moreres"><b>' + _aitem + "</b></div>";
} else {
_aitem = '<div class="ui-menu-item-wrapper">' + _aitem + '</div>';
}
return $("<li>")
.data("item.autocomplete", item)
.append(_aitem)
.appendTo(ul);
};
};
自动完成功能在初始页面加载后工作,但在没有任何数据的情况下刷新页面时,我再次收到原始错误。
如何防止出现“未定义”错误?
【问题讨论】:
标签: jquery autocomplete rendering