我使用 md-autocomplete 显示了一个下拉菜单,而且我还有 typeahead API,一旦我开始在输入框中输入,就应该调用它。问题是,它正在调用 typeahead API 并获取结果并将其设置为 JS 控制器中的变量,但只有当我在输入框中键入下一个字符或关闭并重新输入时,html 中的下拉列表才会显示过滤后的下拉结果- 点击下拉菜单。如何在有人开始输入时立即对下拉结果进行更改?我正在使用 md-search-text-change 来获取文本输入并调用相应的函数。
HTML 代码:
<md-autocomplete flex-gt-xs md-no-cache="true"
required placeholder="Choose a Value"
md-selected-item="vm.item.value"
md-search-text-change="vm.searchTextChange(vm.valueSearchText)"
md-search-text="vm.valueSearchText"
md-items="value in vm.item.valueList"
md-item-text="value.id"
md-min-length="0">
JS 控制器:
function searchTextChange(text) {
service.getValueList(text).then(function (values) {
vm.item.valueList = values;
});
}
function getValues() {
service.getValueList().then(function (values) {
vm.item.valueList = values;
});
}
因此,valueList 使用来自 API 调用的正确值进行了更新,但我在下拉列表中看不到最新的 valueList,而是在下拉列表中看到了直接较旧的值。请帮忙。