2

首先我实现了下面的代码。

app.component.html

<StackLayout [formGroup]="form">
    <label text="Name"></label>
    <TextField formControlName="Name"></TextField>   
    <label text="Last Name"></label>
    <TextField formControlName="LastName"></TextField>
    <button text="save" (tap)="save()"></button>
</StackLayout>

app.component.ts

public form: FormGroup;

constructor(private fb: FormBuilder){
    this.form = this.fb.group({
        "Name": ["", [Validators.required]],
        "LastName": ["", [Validators.required]]
    });
}

public save(){
    console.log(JSON.stringify(this.form.value));
}

当我运行上面的代码时,一切正常。我得到正确的名字和姓氏。

当我尝试向此代码添加操作栏时会出现问题。

app.component.html

<ActionBar title="New" class="action-bar">        
    <ActionItem text="save" (tap)="save()"></ActionItem>       
</ActionBar>
<StackLayout [formGroup]="form">
   <label text="Name"></label>
   <TextField formControlName="Name"></TextField>   
   <label text="Last Name"></label>
   <TextField formControlName="LastName"></TextField>
   <button text="save" (tap)="save()"></button> 
</StackLayout>   

app.component.ts保持不变

当我运行此代码并点击 stacklayout 内的按钮时,我会正确获取姓名和姓氏,但是当我点击 ActionItem 时,我会得到一个空字符串,其中包含姓名和姓氏。我错过了什么吗?

4

1 回答 1

1

您的代码看起来很好 - 事实上我已经用这个测试应用程序重新测试了它,并且一切都按我的预期工作。

旁注:如果在 iOS 上进行测试,请记住,如果后续控制台日志相同,则只能打印一次。( this ) 因此,实际上该操作已完成时,似乎未打印日志。

于 2017-07-14T08:49:17.513 回答