更新Angular 7 HTTP响应的HTML

时间:2019-01-20 21:32:58

标签: javascript angular typescript

这是一个愚蠢的问题,但我不明白。

我订阅了一个观察报。在订阅中获取返回主题。 如果一个主题从可观察对象返回,那么我想找到与返回的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')
        );
    }
  }

1 个答案:

答案 0 :(得分:0)

This answer应该能够为您提供帮助。基本上,您需要访问element.nativeElement。另外,您可能应该使用@ViewChild('my-query') elements;