我遇到了以ajax数据为源的jquery自动完成问题。返回的数据是正确的,并且没有发出任何错误。但是结果仍然没有按预期显示。
我已经关注了与此问题相关的所有stackoverflow问题。一切都指向我所做的事情。因此,它不是所有这些问题的重复。
如果我使用局部变量数据作为数据源,那么一切都会按预期进行。 UI不会出现问题,因为局部变量和ajax数据使用相同的代码。
我的代码是:
$("#dTSearch").autocomplete({
source: function( request, response ) {
$.ajax({
type: "POST",
url: "{{path('dataSearch')}}",
dataType: "json",
data: {
type: "dashboardType",
searchTerm: $("#dTSearch").val()
},
success: function (data) {
if(data.status == 200) {
console.log(data.data);
//response( data.data );
//var dataSet = $.parseJSON(data);
response($.map(data.data, function (item, i) {
//alert(item.value);
return {
id: item.id,
label: item.label,
value: item.value
};
})
);
}
},
error: function (data) {
alert('error!');
console.log(data);
}
});
},
minLength: 3,
select: function( event, ui ) {
alert(ui.item.value);
return false;
},
open: function() {
$(this).autocomplete('widget').css('z-index', 100);
return false;
}
});
$("#dTSearch1").autocomplete({
source: dashboardTypes,
minLength: 3,
select: function( event, ui ) {
$("#onlyFunctionalDiv").show();
},
open: function() {
//$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
$(this).autocomplete('widget').css('z-index', 100);
return false;
}
});
我在“ Response”方法中使用了直接的“ response”方法和“ Map”。似乎没有任何作用。
当我控制结果并发出警报时,一切似乎都很好。
下图显示了我使用的结果和控制台日志。
在第一张图片中,源是局部变量,并且在用户开始键入时显示结果。下面是同一本地变量的控制台日志。
第二张图片用于ajax响应。当用户键入“ func”时,它正在调用ajax,并且响应正在打印。但是结果没有按预期显示。绿色框表示局部变量的响应,红色框表示ajax响应数据。两者似乎是相同的。但是缺少了一些东西,当结果集可用时,它不显示结果。
有人可以帮我吗,这是怎么回事?
答案 0 :(得分:0)
问题已解决。问题是尾随分号“;”在响应方法中return语句的末尾。
代码更改为:
<host-element>
<my-element [getStyle] = "getStyleFnFromHost"> </my-element>
</host-element>
我已经在return语句的末尾删除了分号。