如何使用Nativescript自动保存formControlName

时间:2019-02-08 15:18:12

标签: angular typescript nativescript autosave

我在.html中有这个TextField

<TextField class="textfield" row="0" col="1" formControlName="powersupplyid" [text]='myipdevice'> </TextField>

我想在视图中显示“ myipdevice”时自动保存此功能。

getform() {
    ..........
     .....
        this.myipdevice = myipfind;
        console.log('u gjet', this.myipdevice)
        let LS = require("nativescript-localstorage");
        LS.setItem(this.myipdevice);
    }

您能问我什么想法,当数据以html格式显示时如何自动保存值myipdevice

谢谢!

2 个答案:

答案 0 :(得分:0)

它已经被保存到您的表单对象中,无论您叫它什么。 可以说您称其为“表单”

然后this.form.controls.powersupplyid.value应该在您在文本区域内键入或执行任何操作时自动更新其值。

答案 1 :(得分:0)

现在,您似乎正在做两件事。一方面,您将TextField绑定到具有formControlName的反应形式字段,另一方面,您还绑定了[text]属性。我建议仅使用formControlName

在组件中,一旦检索到值,就可以将其推送到控件。 (由于您尚未发布完整的代码,因此我在这里做了一些假设。)

因此,在示例中的ngOnInit方法中,您可以从存储中检索保存的值。然后,用patchValue更新FormGroup,以将更改推送到视图。

此外,您可以通过订阅valueChanges来收听对控件的更改。

export class IpDeviceFormComponent implements OnInit {

  form: this.fb.group({
    powersupplyid: [''] // this is the FormControl bound to your TextField
  });

  constructor(private fb: FormBuilder) { }

  ngOnInit() {
    // get a previously saved value from somewhere
    getSavedPowerSupplyId().subscribe(id => {
      this.form.patchValue({
        powersupplyid: id
      });
    });

    // listen for any changes to the form
    this.form.valueChanges.subscribe(form => { /* Save new form state */ });
  }
}