* ngIf访问嵌套元素

时间:2018-02-09 09:53:32

标签: angular

我有div我希望通过按钮点击事件切换。切换工作正常,但当我尝试更改内部元素的src时,它说它无法找到它。为什么是这样?使用*ngIf无法访问innerHTML吗?我是Angular的新手。

page.html中:

<button (click)="click()">Click me</button>
<div *ngIf="clicked">
    <img id="selector"/>
</div>

script.ts:

export class ButtonClick {
    clicked = false;
    click() {
        this.clicked = true;
        document.getElementById('selector').src = 'clicked.jpg';
    }
}

1 个答案:

答案 0 :(得分:4)

不鼓励在Angular中以这种方式访问​​DOM。首选视图绑定而不是命令式DOM修改:

<img [src]="imageSrc"/>
export class ButtonClick {
  clicked = false

  imageSrc:string;

  click() {
    this.clicked = true

    this.imageSrc = 'clicked.jpg'
  }
}