angular - 从一个类中的另一个方法调用方法(this.function 不起作用)
问题描述
我正在使用 Angular 开发我的第一个应用程序,即使在 StackOverflow 和 Internet pages 中多次提到它,我也遇到了问题,但在我的情况下它不起作用。这是我的缩短代码:
export class PropertiesComponent implements OnInit, AfterViewInit {
constructor(private renderer: Renderer2) {
this.todoForm = document.getElementById('todo-form');
this.session1 = sessionStorage.getItem('name');
this.addInput = document.getElementById('add-input');
this.todoList = document.getElementById('todo-list');
this.todoItems = document.querySelectorAll('.todo-item');
this.oldAddress = '';
};
ngOnInit() {
document.addEventListener('DOMContentLoaded', function () {
this.todoForm.addEventListener('submit', this.addTodoItem);
this.todoItems.forEach(item => this.bindEvents(item));
});
this.addresses = this.fetchUserAddreses();
};
createElement(tag, properties, ...children) {
//code here
return element;
};
createTodoItem(title) {
//code here
return listItem;
};
bindEvents(todoItem) {
const editButton = todoItem.querySelector('.edit');
const deleteButton = todoItem.querySelector('.delete');
editButton.addEventListener('click', this.editTodoItem);
deleteButton.addEventListener('click', this.deleteTodoItem);
};
addTodoItem(event) {
//code here
};
editUserAddress(oldAddress: any, newAddress: any) {
//code here
};
editTodoItem() {
//code here
const title = listItem.querySelector('.title');
** this.editUserAddress(this.oldAddress, title.innerText); ** //!! error this.editUserAddress(); is not a function
};
fetchUserAddreses() {
//code here
}
addUserAddress(event: any) {
//code here
}
}
问题出在这一行
this.editUserAddress(this.oldAddress, title.innerText); //!! error this.editUserAddress is not a function
,如果需要,我可以显示我的完整代码。
解决方案
尝试使用箭头函数,它将函数绑定到当前实例
editTodoItem = () => {
const title = listItem.querySelector('.title');
this.editUserAddress(this.oldAddress, title.innerText);
}
推荐阅读
- json - SWIFT URLResponse 无输出 // Google Maps PI
- android - 无法从 Gradle 中的 jitpack 添加库
- python - Python:根据名称过滤来自 mongodb 的数据:something}
- sql - Informatica - 根据来源组合行
- dart - 如何在没有“异步”的情况下等待 Future 的完成
- git - 为什么 GitHub 和 git 命令行为合并状态和提前/后面提交给出不同的结果?
- hive - 如何手动创建/复制数据到 hive 中的分区
- image - 为什么我的机器学习图像如此混乱?
- docusignapi - Docusign 上的 eventNotification 没有响应
- javascript - 添加由选择更改触发的 HTML 代码