如何根据变量的值使用 ngIf?

How to use ngIf according to a variable's value?

我在file.html中的代码是

<button ion-button item-right>
        <ion-icon name="md-add-circle" (click)="save();"></ion-icon>
      </button>

file.ts

editmode = false;

我想要实现的是如果editmode为false则调用save()函数,如果editmode为true则当按钮来自html页面时调用editedu(elem,index)函数被点击。

你可以使用三元if(或者你可以调用一个方法,你可以根据editmode调用另一个方法)

(click)="editmode ? save() : editedu(elem, index)"

请使用

<button ion-button item-right>
 <div *ngIf="editmode">     
<ion-icon name="md-add-circle" (click)="editedu(elem,index);"></ion-icon>
</div>
 <div *ngIf="!editmode">     
<ion-icon name="md-add-circle" (click)="save();"></ion-icon>
</div>
</button>

如果你想在单行中完成,

<div   *ngIf=editmode ? save() : editedu(elem, index)">
   <ion-icon name="md-add-circle" (click)="save();"></ion-icon>
</div>

请看插件演示 https://plnkr.co/edit/X5e6avkveGeVRqhzLVFr?p=preview

 //our root app component
import {Component, NgModule, VERSION} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'

@Component({
  selector: 'my-app',
  template: `
    <div>
      <h2 (click)='editMode = !editMode'>Toggle editMode {{editMode}}</h2>
      <button (click)='editMode? save(): ""'>Call Me</button>
    </div>
  `,
})
export class App {
  name:string
  editMode: boolean = true;
  constructor() {
    this.name = `Angular! v${VERSION.full}`
  }

  save(): void {
    alert("Called because editMode is true");
  }
}

@NgModule({
  imports: [ BrowserModule ],
  declarations: [ App ],
  bootstrap: [ App ]
})
export class AppModule {}