如何在angular中调用setter方法
我想使用setter方法更新我的表单。。我应该在哪里调用setter方法? 这是我的component.ts代码如何在angular中调用setter方法,angular,Angular,我想使用setter方法更新我的表单。。我应该在哪里调用setter方法? 这是我的component.ts代码 export class UpdateZoneComponent implements OnInit { profileForm: FormGroup products: any; h: number; constructor(private http: HttpClient, private formBuilder: FormBuilder, private route:
export class UpdateZoneComponent implements OnInit {
profileForm: FormGroup
products: any;
h: number;
constructor(private http: HttpClient, private formBuilder: FormBuilder, private route:
ActivatedRoute) { }
ngOnInit() {
this.profileForm = this.formBuilder.group({
zone_name: [''],
zone_id: ['']
});
//这里的id来自具有click事件的组件
this.route.paramMap.subscribe(routeParam => {
const id = +routeParam.get('id');
console.log(id)
this.h = id
})
this.http.get("http://192.168.8.219:8835/zonedata/" + this.h).subscribe(
(res: any) => {
console.log(res)
const response = res.data;
const nameZone = res.data.zone_name;
console.log(nameZone)
}
)
}
//这里我们想使用setter方法更新区域名称
set zone_name(name) {
console.log("hello")
let strg = this.profileForm.get("zone_name").setValue(name);
console.log(strg)
}
save(value: any) {
console.log(value)
const url = `${"http://192.168.8.219:8835/zonedata"}${this.h}`;
this.http.put(url, this.products).subscribe((dataa) => {
console.log(dataa)
this.zone_name();
})
}
}
<form [formGroup]="profileForm" #zoneData (ngSubmit)="save(profileForm.value)">
<div class="form-group row">
<label for="zname" class="col-sm-2 col-form-label">Zone Name</label>
<div class="col-sm-10 txt-box">
<input type="text" name="zname" formControlName="zone_name"
id="zoneName" class="form-control" placeholder="Enter"
[value]="zone_name" >
<p style="color: white">{{zone_name}}</p>
</div>
</div>
<div class="form-group row">
<div class=" col-md-10">
<button type="submit" class="a-btns btn btn-success">Save</button>
</div>
</div>
</form>
设置区域名称(名称){
log(“你好”)
设strg=this.profileForm.get(“zone_name”).setValue(name);
console.log(strg)
}
保存(值:任意){
console.log(值)
常量url=`${”http://192.168.8.219:8835/zonedata“}${this.h}`;
this.http.put(url,this.products).subscribe((dataa)=>{
console.log(dataa)
此.zone_name();
})
}
}
区域名称
{{zone\u name}
拯救
当您在angular中使用被动表单时,您当然不需要更新表单字段。值会自动更新。你会得到你所做的每一个改变
将其添加到构造函数中,您将发现对被动表单所做的更改
constructor() {
this.profileForm.valueChanges.subscribe((res) => {
console.log(this.profileForm.value);
});
}
你可以试试下面的方法
this.http.put(url, this.products).subscribe((dataa) => {
if(dataa)
setNameZone(dataa);
})
setNameZone(val)
{this.profileForm.controls.zone_name.setValue(val);
}
由于您使用的是被动表单,因此不一定需要更新表单字段。值会自动更新。你会得到你所做的每一个改变
this.profileForm.valueChanges.subscribe((res)=>{
console.log(this.profileForm.value);
})
Neel,考虑Sibabrat注释,顺便说一句,您使用this.zone='what-ever'
执行“函数”set zone_name(name){…}
-在函数中,name获得值“what-ever”