带有webapi调用的md-autocomplete显示以前的结果

时间:2017-03-03 16:23:53

标签: jquery angular-material md-autocomplete

所以我试图通过调用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'] 
            }
        });
    }
}

1 个答案:

答案 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而导致问题。