离子3 * ngIf不更新视图

时间:2018-02-19 17:06:21

标签: ionic3 ngif

我正在使用Ionic 3.我更改了组件中变量的值,并且页面视图未更新。

我看过类似问题的答案,但我没有重新解决问题。

我的代码。

Home.html中

    <div *ngIf="getLoading()" text-center>
    <img src="http://spcdn1.whichairline.com/1c40c0f0542d7227719eccd99bd71fd172d36e0a/images/loaders/loader-search.gif">
    <h1><span>Loading...</span></h1></div>
<component-myList></component-myList>

home.ts

constructor(
public navCtrl: NavController,
public myList: myListComponent) {}

public getLoading() {
  return this.myList.loading;
}

myList.ts

    @Component({
       selector: 'component-myList',
       templateUrl: 'myList.html'
    })



export class myListComponent {

  public loading: boolean = false;

  constructor() {}

  putLoading() {
    this.loading = !this.loading;
    console.log(this.loading);
  }
}

myList.html

<button color="secondary" (click)="putLoading()" ion-button right>Put Loading</button>

我单击按钮但没有任何反应......虽然我确实看到加载值发生了变化。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

感谢Mahesh Jadhav,我终于解决了这个问题......

我在home的构造函数中创建了:

events.subscribe ('update', loading => {
   this.loadingLocal = loading;
});

在组件的构造函数中:

events.publish ("update", this.loading, 1);

每次修改组件中的加载值时,我都会调用事件:

events.publish ("update", this.loading, 1);

所以页面找到并再次呈现......