我正在尝试为Angular创建自定义自动完成指令。我的工作已经到了可以在文本框中输入输入内容并单击其中一个选项时创建选择框的地步,从而在文本字段中填充了我单击的选项。完成此操作后,我想完全删除下拉列表。
我目前有一个删除列表的功能...
$ go get gitlab.mysite.com/group/project
package gitlab.mysite.com/group/project: unrecognized import path "gitlab.mysite.com/group/project" (https fetch: Get https://gitlab.mysite.com/group/project?go-get=1: x509: certificate signed by unknown authority)
只要我叫它,它就可以正常工作。问题是我需要在这里的事件监听器中调用它。
closeAllLists(element) {
console.log('clearing all lists');
const x = document.getElementsByClassName('autocomplete-items');
for (let i = 0; i < x.length; i++) {
if (element !== x[i]) {
x[i].parentNode.removeChild(x[i]);
}
}
}
问题在于,当我调用 option.addEventListener('click', function(e) {
const myInput = document.getElementById('autocomplete-list').parentElement.querySelector('.name');
myInput.value = e.srcElement.innerHTML;
this.closeAllLists();
});
时,“ this”是指我将事件侦听器附加到的元素。我不能只打电话给this.closeAllLists();
,因为打字稿不喜欢这样。如何从事件监听器内部调用类方法?
谢谢!