这是一个愚蠢的问题,但我不明白。
我订阅了一个观察报。在订阅中获取返回主题。 如果一个主题从可观察对象返回,那么我想找到与返回的topic.id具有相同ID的html div,并更新它的innerHTML或文本以显示从put方法返回给控制器的更新文本。但是,当我尝试.INNERHTML或.textContent时,出现以下错误:
ERROR TypeError: element.textContent is not a function
还是VS Code中的此错误。
ts] Cannot invoke an expression whose type lacks a call signature. Type 'String' has no compatible call signatures. [2349]
const element: HTMLElement
这是我的函数调用:我已经验证了topic.id是一个数字,因此将其转换为用于document.getElementById
调用的字符串,并且我还验证了topic.name
也是一个字符串。我想让这个简单的事情起作用吗?
editTopicSubmit() {
event.stopPropagation();
if (this.editTopicId === 0) {
this.alertify.error('Can\'t update this topic. Verify the id');
} else {
this.editTopic.id = this.editTopicId;
this.topicsService.updateTopic(this.editTopic)
.subscribe((topic: Topic) => {
if (topic) {
this.alertify.success(topic.name + ' updated');
this.editTopicId = 0;
const element = document.getElementById(topic.id.toString());
element.textContent(topic.name);
} else {
this.alertify.error(this.editTopic.name + ' failed to update');
}
},
(err: any) => this.alertify.error('something went wrong with updating the customer')
);
}
}
答案 0 :(得分:0)
This answer应该能够为您提供帮助。基本上,您需要访问element.nativeElement。另外,您可能应该使用@ViewChild('my-query') elements;
。