我无法在Angular 2中获取本地存储的变量值

时间:2017-06-02 06:39:52

标签: html5 angular typescript ionic2

我花了好几个小时试图弄清楚我的代码出了什么问题。 详情如下。 似乎在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

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为您尚未初始化editAccountkey变量。未定义editAccountkey变量的默认值。

因此,当您单击第一个按钮,然后单击第二个按钮时,它将显示正确的结果。但是,如果您直接点击第二个按钮,则不会显示editAccountkey

的任何值

在这种情况下,您应该初始化editAccountkey变量,如下所示:

  

public editAccountkey:string =&#39; 555&#39;;

或者您可能已为其指定了空值。