我花了好几个小时试图弄清楚我的代码出了什么问题。 详情如下。 似乎在test.ts中进行表单验证后,很难访问最初存储的本地值。
的test.html
...
<form [formGroup]="AddBankForm">
...
</form>
<!--step 1 -->
<button (click)="storeKey('500')">Store It</button>
<!--step 2 -->
<button (click)="checkAccountKey()">Check It</button>
....
test.ts
@Component({
selector: 'test',
templateUrl: 'test.html'
})
export class TestPage {
constructor(
public navCtrl: NavController,
public navParams: NavParams,
public formBuilder: FormBuilder
) {}
....
//------------------
public AddBankForm = this.formBuilder.group({
bank: ["", Validators.required],
acname: ["", Validators.required],
acno: ["", Validators.required],
title: ["", Validators.required]
});
...
editAccountkey: string;
storeKey(accountid: string) {
this.editAccountkey = accountid;
}
....
checkAccountKey() {
if (this.AddBankForm.valid) {
alert("My key is "+ this.editAccountkey);
}
}
....
}
我的警报() result =我的关键是 ....但 预期结果=我的密钥是500
答案 0 :(得分:0)
这种情况正在发生,因为您尚未初始化editAccountkey
变量。未定义editAccountkey
变量的默认值。
因此,当您单击第一个按钮,然后单击第二个按钮时,它将显示正确的结果。但是,如果您直接点击第二个按钮,则不会显示editAccountkey
在这种情况下,您应该初始化editAccountkey
变量,如下所示:
public editAccountkey:string =&#39; 555&#39;;
或者您可能已为其指定了空值。