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]; });
}
}
我的屏幕上有两个输入字段(“名称”和“城市”)和一个文本区域。文本区域填充了一些 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]; });
}
}