Angular - 具有多重绑定的 TextArea

Angular - TextArea with Multiple Binding

我的屏幕上有两个输入字段(“名称”和“城市”)和一个文本区域。文本区域填充了一些 JSON 数据,数据包含一些详细信息,例如“姓名”、“城市”、“地址”、“密码”等。

当用户在“名称”或“城市”输入字段中键入内容时,如何只更新文本区域内的“名称”或“城市”。

是否可以对 textarea 进行多重绑定?

如有任何帮助,我们将不胜感激。

这种情况下没有多重绑定可用,但是,您可以解析json每个更改事件,并更新相关字段:

demo

@Component({
  selector: "hello",
  template: `
    <textarea (change)="updateObj()" [(ngModel)]="objJson"></textarea>
    {{ obj | json }}
  `,
  styles: [
    `
      h1 {
        font-family: Lato;
      }
    `
  ]
})
export class HelloComponent {
  obj = {
    name: "John",
    city: "Chicago"
  };

  objJson: string;

  constructor() {
    this.objJson = JSON.stringify(this.obj);
  }

  updateObj() {
    const tempObj = JSON.parse(this.objJson);
    this.obj.name = tempObj.name;
    this.obj.city = tempObj.city;
    // also possible for a generic update:
    // Object.keys(this.obj).forEach(k => { this.obj[k] = tempObj[k]; });
  }
}