2016-03-07 15 views
9
<ion-navbar hideBackButton > 
    <ion-title> </ion-title> 
    ... 
    ... 

Chcę, aby hideBackButton był tam warunkowo i nie chcę powtarzać całego elementu joystick-navbar z * ngIf. Czy można zastosować atrybut * ngIf for hideBackButton?* ngIf dla atrybutu html w Angular2

Odpowiedz

8

Można wykorzystać interpolację:

<ion-navbar [attr.hideBackButton]="someExpression"> 
    <ion-title> </ion-title> 
    ... 
... 

Jeśli someExpression jest null atrybut nie będzie obecny, a jeśli someExpression jest pusty ciąg znaków, atrybut będzie. Oto przykład:

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div [attr.hideBackButton]="someExpression"> 
     Test 
    </div> 
    <div (click)="toggleAttribute()">Toggle</div> 
    ` 
}) 
export class AppComponent { 
    constructor() { 
    this.someExpression = null; 
    } 

    toggleAttribute() { 
    if (this.someExpression==null) { 
     this.someExpression = ''; 
    } else { 
     this.someExpression = null; 
    } 
    } 
} 

Zobacz ten plunkr: https://plnkr.co/edit/LL012UVBZ421iPX4H59p?p=preview

+0

ma przykład pracy? – micronyks

+0

początkowo wystąpił problem z inicjalizacją łącza plunkera. ale teraz działa dobrze. – micronyks

+0

Euh tak, moja próbka plunkr działa ;-) Co masz na myśli mówiąc "czy przykładowa praca"? –

19

trzeba dostarczyć null do wartości logicznych dla nich zostaną usunięte,

<ion-navbar [attr.hideBackButton]="someExpression ? true : null"> 

inaczej kątowe tworzy

<ion-navbar hideBackButton="false">