Promise 中的角度绑定在 ngOnInit

问题描述

在 Angular 中,我使用了一个返回 Promise 的简单函数,在“then”函数中,我更改了 Img html 标签的 src。 当我从 NgOnInit(或从 onclick)调用这个函数时,html 不会更新,直到我通过再次点击某物来强制重新加载内容。但 colsole.log 工作。

  click1() {
    this.loadCaptcha();
  }

  ngOnInit(): void {
    this.loadCaptcha();
  }

  loadCaptcha() {
    this.apiService.getCaptcha()
      .then((data) => {
        this.image = 'http://....' + data.id;
        console.log(data);
      });
  }
<img [src]='image' (click)="click1()" />

解决方法

我解决了, 问题是 Metronic 模板中存在的一行代码禁用了数据绑定。 通过禁用 changeDetection 修改,绑定再次起作用。

changeDetection: ChangeDetectionStrategy.OnPush,