【问题标题】:Reload page after data has been modified数据修改后重新加载页面
【发布时间】:2018-07-02 07:24:56
【问题描述】:

我的 Ionic 应用程序包含一个显示项目列表的页面。该列表应该可以通过搜索栏进行搜索。我这样实现了搜索栏

<ion-header>
  <ion-navbar>
    <button ion-button menuToggle>
      <ion-icon name="menu"></ion-icon>
    </button>
    <ion-title>{{pageTitle}}</ion-title>
  </ion-navbar>

  <ion-searchbar 
    [(ngModel)]="searchQuery" 
    [showCancelButton]="shouldShowCancel" 
    (ionInput)="onInput($event)">
  </ion-searchbar>

</ion-header>
<ion-content>
  <ion-list>
    <ion-card *ngFor="let item of displayedList">

      <ion-card-header left color="primary">
        <ion-icon name="person" padding-right></ion-icon>
        {{item.name}}
      </ion-card-header>

    </ion-card>

  </ion-list>
</ion-content>

onInput 方法看起来像这样

public onInput(inputEvent: Event):void {
    this.initializeList();
    var query:string = this.searchQuery;

    if (query) {
      this.displayedList = $.grep(
        this.defaultList,
        (item, index) => {
          return item.name.includes(query);
        }
      );
      // gives expected correct output
      console.log(this.displayedList);

    }
  }

其实效果很好,即使grep调用后的输出也是正确的。但是页面不会更新,仍然会显示所有列表项。如何在基础数据(displayedList)更改后重新加载页面?

【问题讨论】:

    标签: jquery angular ionic-framework ecmascript-6


    【解决方案1】:

    尝试(ngModelChange) 而不是(ionInput)

    【讨论】:

    • 不,这并不能解决问题。在早期的 Angular 版本中,我似乎需要调用 digest 之类的东西,因为我只是在后台范围内修改了数组,而不是在前台。但我不知道这在最近的版本中是如何工作的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 2021-11-25
    • 1970-01-01
    • 2012-08-14
    相关资源
    最近更新 更多