Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IonicViewWillEnter不点火(ionic 2、angular 2、typescript)_Angular_Typescript_Ionic Framework_Ionic2 - Fatal编程技术网

IonicViewWillEnter不点火(ionic 2、angular 2、typescript)

IonicViewWillEnter不点火(ionic 2、angular 2、typescript),angular,typescript,ionic-framework,ionic2,Angular,Typescript,Ionic Framework,Ionic2,我将正确的数据传递到this.items中,但在切换到视图后,当ionViewWillEnter方法通常应该触发时,它不会出现。相反,在我的搜索栏中输入一些内容后,它就会这样做 ionViewWillEnter方法: ionViewWillEnter() { ... this.http.post('http://www.example.com/select.php', creds, { headers: headers

我将正确的数据传递到this.items中,但在切换到视图后,当ionViewWillEnter方法通常应该触发时,它不会出现。相反,在我的搜索栏中输入一些内容后,它就会这样做

ionViewWillEnter方法:

ionViewWillEnter() {
          ...
          this.http.post('http://www.example.com/select.php', creds, {
              headers: headers
          })
          .map(res => res.json().User) 

          .subscribe(
          data => this.data = data.map(user => user.Name), 
          err => this.logError(err),
          () => console.log('Completed')
          );


      this.items = this.data;
  }
搜索栏:

getItems(ev) {
    // Reset items back to all of the items
    this.initializeItems(); // same code as ionViewWillEnter

    // set val to the value of the ev target
    var val = ev.target.value;

    // if the value is an empty string don't filter the items
    if (val && val.trim() != '') {
      this.items = this.items.filter((item) => {
        return (item.toLowerCase().indexOf(val.toLowerCase()) > -1);
      })
    }
  }
我的html:

<ion-searchbar (ionInput)="getItems($event)"> </ion-searchbar>

  <ion-list>
    <ion-item *ngFor="let item of items">
      {{ item }}
...

{{item}}
...

请记住,Http请求(您在
ionViewWillEnter()
函数中使用的请求)是异步的。这意味着,当应用程序向服务器发出请求时,请求范围之外的任何代码都将继续运行

您在生命周期事件结束时将
this.data
分配给
this.items
,但您在Http请求之外执行此操作。在
data=>
回调中进行赋值