Angular 6 - textarea (change) 永远不会改变 textarea 的内容

5 typescript angular angular6

我有一个 textarea 问题,如果我修改 textarea 上的内容并且(更改)被触发,它不会通过代码更改 textarea 的内容。

下面是一个例子:

应用程序组件.html

<textarea #content (change)="dosomething(content.value)">{{ thecontents | json }}</textarea>
Run Code Online (Sandbox Code Playgroud)

app.component.ts

内容;

dosomething(data) {

    // this will overwrite whatever is already in the textarea
    this.thecontents = {  something : 'someother'};
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,文本区域在(change)触发时没有改变

为什么?我怎样才能解决这个问题?

Con*_*Fan 6

[value]或绑定 textarea 的内容[ngModel]

<textarea (change)="dosomething($event.target.value)" [value]="thecontents | json"></textarea>

<textarea (change)="dosomething($event.target.value)" [ngModel]="thecontents | json"></textarea>
Run Code Online (Sandbox Code Playgroud)

有关演示,请参阅此 stackblitz


Che*_*pan 0

如果您不想 ngModel 您可以使用 View Child Directive 来获得相同的结果

@ViewChild('content') con:ElementRef;
  thecontents={something:''};
name='';
  dosomething(data) {

    // this will overwrite whatever is already in the textarea

this.con.nativeElement.value=1;

}
Run Code Online (Sandbox Code Playgroud)

我已经编辑了你的代码,请查看https://stackblitz.com/edit/angular-xjksed