作为 *ngIf 的结果更改布尔变量的值
Changing the value of a boolean variable as a result of an *ngIf
我制作了一个应用程序,用户必须在其中输入他的地址详细信息,然后将其存储在 firebase 中,我正在尝试做的是,如果用户已经存储了他的地址,它将不会再次显示地址输入表单但会显示地址信息,但我不知道该怎么做。
我试过使用 (ionChange) 调用函数并更改布尔变量值以显示用户地址详细信息(如果存在)和表单(如果不存在),但它没有用。
这是我尝试过的代码
HTML
<ng-container *ngFor='let a of Addresses|async'>
<ng-container *ngIf='a.UID == firebase.id;else other_content'>
<ion-card (ionChange)='addressExists()'>
{{a.City}}
</ion-card>
</ng-container>
<ng-template #other_content>
<ng-container (ionChange)='addressDoesNotExist()'></ng-container>
</ng-template>
</ng-container>
TS
Addresses;
Exists = false;
constructor(public afAuth:AngularFireAuth, public firebase: FirebaseProvider,
public navCtrl: NavController, public navParams: NavParams, public auth: AuthProvider) {
this.Addresses = this.firebase.getAddresses();
}
addressExists(){
this.Exists = true;
}
addressDoesNotExist(){
this.Exists = false;
}
这是我的数据在 firebase 上的样子:https://imgur.com/a/T5fzD2U
我认为没有必要存储布尔值。你可以这样做:
HTML:<ng-container *ngIf='addressExists(a);else other_content'>
TS: addressExists(address) { return address.uid === this.firebase.id }
现在如果 addressExists returns true 它将显示:
<ion-card>
{{a.City}}
</ion-card>
否则会显示:
<ng-template #other_content>
<ng-container>... your form ...</ng-container>
</ng-template>
我制作了一个应用程序,用户必须在其中输入他的地址详细信息,然后将其存储在 firebase 中,我正在尝试做的是,如果用户已经存储了他的地址,它将不会再次显示地址输入表单但会显示地址信息,但我不知道该怎么做。
我试过使用 (ionChange) 调用函数并更改布尔变量值以显示用户地址详细信息(如果存在)和表单(如果不存在),但它没有用。
这是我尝试过的代码
HTML
<ng-container *ngFor='let a of Addresses|async'>
<ng-container *ngIf='a.UID == firebase.id;else other_content'>
<ion-card (ionChange)='addressExists()'>
{{a.City}}
</ion-card>
</ng-container>
<ng-template #other_content>
<ng-container (ionChange)='addressDoesNotExist()'></ng-container>
</ng-template>
</ng-container>
TS
Addresses;
Exists = false;
constructor(public afAuth:AngularFireAuth, public firebase: FirebaseProvider,
public navCtrl: NavController, public navParams: NavParams, public auth: AuthProvider) {
this.Addresses = this.firebase.getAddresses();
}
addressExists(){
this.Exists = true;
}
addressDoesNotExist(){
this.Exists = false;
}
这是我的数据在 firebase 上的样子:https://imgur.com/a/T5fzD2U
我认为没有必要存储布尔值。你可以这样做:
HTML:<ng-container *ngIf='addressExists(a);else other_content'>
TS: addressExists(address) { return address.uid === this.firebase.id }
现在如果 addressExists returns true 它将显示:
<ion-card>
{{a.City}}
</ion-card>
否则会显示:
<ng-template #other_content>
<ng-container>... your form ...</ng-container>
</ng-template>