2017-02-22 4 views
11

Ich verwende Ion-Tabs in meiner App und ich möchte ein Bild in einem Tab-Button verwenden. Ich möchte dieses Bild dynamisch einstellen.Ionic 2: Verwenden Sie Bild in Tab-Taste

In meinem Fall habe ich ein Konto mit verschiedenen Benutzern verknüpft. Ich möchte mein Tab-Bild abhängig vom ausgewählten Benutzer ändern.

Ich habe dies:

enter image description here

und ich möchte dies:

enter image description here

Mein Code in meine Registerkarten:

<ion-tabs tabsHighlight="false"> 
     <ion-tab [root]="HomePage" 
       tabsHideOnSubPages="true" 
       tabIcon="checkbox" 
       tabTitle="A faire" 
       tabBadge="5" 
       tabBadgeStyle="notif"> 
     </ion-tab> 
     <ion-tab [root]="ToComePage" 
       tabsHideOnSubPages="true" 
       tabIcon="time" tabTitle="A venir" 
       tabBadge="0" 
       tabBadgeStyle="notif"> 
     </ion-tab> 
     <ion-tab [root]="HistoricPage" 
       tabsHideOnSubPages="true" 
       tabIcon="book" 
       tabTitle="Historique"> 
     </ion-tab> 
     <ion-tab [root]="MenuPage" 
       tabsHideOnSubPages="true" 
//I want to delete this tab Icon and replace it by a picture. 
       tabIcon="menu" 
       tabTitle="Menu"> 
     </ion-tab> 
    </ion-tabs> 

Ich weiß nicht, wie Um das zu tun, eine Idee?

+0

schreiben Bitte einige Code, der zeigt, was Sie versucht. –

+0

Ich habe meinen Beitrag geändert. Ich weiß nicht, was du besser verstehen musst, was ich machen will? –

Antwort

3

Endlich finde ich eine Lösung! Ich schreibe einfach in das erstellte DOM.

ich wie folgt aus:

updateAccountTab() : void { 
     let array = document.getElementsByClassName('tabbar'); 
     let tabbar = array[0]; 
     let element = tabbar.childNodes[tabbar.childElementCount-1]; 
     if(element) { 
      element.removeChild(element.childNodes[1]); 
      let img = document.createElement("img"); 
      img.setAttribute("class", "tab-icon-custom tab-button-icon icon icon-md"); 
      img.setAttribute("src", this.pdata.user.profile_thumbnail); 
      element.insertBefore(img, element.childNodes[1]); 
     } 
    } 
+1

Das ist nicht die empfohlene Art, mit dem DOM in Angular/Ionic Apps zu interagieren. Dies kann zu einigen Leistungsproblemen führen. – sebaferreras

+1

Sicher verstehe ich. Aber ich habe keinen anderen Weg gefunden, zu tun, was ich will ... –

+2

Oh, ok. Später heute werde ich Ihre Antwort bearbeiten und die _ionic way_ hinzufügen, um genau das gleiche zu tun :) – sebaferreras

9

gibt benutzerdefinierte Namen tabIcon wie

<ion-tab [root]="MenuPage" 
     tabsHideOnSubPages="true" 
     tabIcon="customicon" 
     tabTitle="Menu"> 
</ion-tab> 

und in CSS:

.ion-ios-customicon-outline, 
.ion-ios-customicon,.ion-md-customicon,.ion-md-customicon-outline { 
    content: url('imageurl'); 
} 

plunk

+0

Danke, es funktioniert! Aber wie kann ich die Größe des Bildes ändern? Ich habe versucht, die Breite zu ändern, aber es ist nicht effektiv. –

+0

Wie kann ich die Bild-URL dynamisch ändern? –

+0

Haben Sie jemals herausgefunden, wie Sie die Bild-URL ändern können? – nareeboy