所以我试图通过调用webapi来自动完成,并且它正在工作/返回正确的数据但是md-autocomplete总是显示前一个webapi调用的结果,而不是最近的结果。因此,当用户输入两个字符时,自动完成下拉列表将不会加载,但我会看到webapi成功返回结果。然后,当用户输入第三个字符时,它将显示使用两个字符调用webapi时的结果。似乎返回vm.vendorResults在加载数据之前返回。我究竟做错了什么?谢谢!
const Pikaday = require('pikaday');
class datePickerModule {
init() {
let picker = new Pikaday({
field: document.getElementById('datepicker'),
format: 'DD/MM/YYYY',
yearRange: [1900, 2017],
maxDate: new Date(),
i18n: {
weekdaysShort: ['S', 'M', 'T', 'W', 'T', 'F', 'S']
}
});
}
}
答案 0 :(得分:0)
我通过将方法更改为同步来修复它,但我不确定这是否是可接受的修复方法?
$.ajax({
url: vm.memportalUrl + "securewebapi/GetVendorList/?jsonCatalogInfo=" + JSON.stringify(jsonCatalogInfo),
success: function (result) {
console.log('success calling GetVendorList');
//defer.resolve(result);
var jsonResult = JSON.parse(result);
vm.vendorResults = JSON.parse(jsonResult);
console.log(vm.vendorResults);
//return vm.vendorResults;
},
async: false
});
return vm.vendorResults;
编辑:只是想更新它,并说另一个开发人员在应用程序中包含了angular-block-ui,这会在每次异步调用期间阻塞整个UI而导致问题。