2016-11-25 2 views
0

Ich erstelle eine App mit angularjs, cordova und iconic. Ich habe ein Papierkorbsymbol, das nur angezeigt werden soll, wenn der Benutzer auf der Hauptseite ist.AngularJS ng-show - 2 mal, 2 verschiedene Ergebnisse

Also ich werde das Symbol nur wenn der rootScope.Trashicon ist wahr.

Es funktioniert gut in meinem Sidemenü. Aber im Seitenmenü-Inhaltsbereich funktioniert es nicht. Ich weiß nicht, warum ...

<ion-side-menus ng-controller="MainController" ng-init="getListTitle()"> 
     <ion-side-menu side = "left"> <!-- expose-aside-when DELETE IT !!!!!! --> 
      <header><img src="img/todo_today_logo_small.png"></header> 
      <div id="sideContent" class="item item-divider">ToDo Liste: 
       <p>     
        > <a menu-close href="#/todo">{{sideMenuListTitle}}</a> 
       </p> 
       <div ng-show="Trashicon">test</div> 
       <h3></h3> 
      </div> 
      <div> 
       <ul> 
        <li><a menu-close href="#/impressum">Impressum</a></li> 
        <li><a menu-close href="#/datenschutzerklaerung">Datenschutzerklärung</a></li> 
       </ul> 
      </div> 
     </ion-side-menu> 

     <ion-side-menu-content> 
      <ion-nav-bar class="custom-dark" align-title="center"> 
       <ion-nav-buttons side="left"> 


    <!-- Toggle left side menu --> 
    <button menu-toggle="left" class="button button-icon icon ion-navicon light"></button> 
    </ion-nav-buttons> 
       <div ng-show="Trashicon"> 
        <ion-nav-buttons side="right"> 
        <button ng-click="deleteProducts()" class="button button-icon ion-ios-trash-outline pull-right light"></button> 
       </ion-nav-buttons> 
       </div>     
     <ion-nav-title></ion-nav-title> 
    </ion-nav-bar> 
      <div ng-view="" class="container"></div> 
     </ion-side-menu-content> 
    </ion-side-menus> 

Das ist mein rootScope Variable

.controller('MainController', function ($scope, $ionicPopup, $rootScope) { 
      $rootScope.Trashicon = false; 

Das div mit dem Papierkorb-Symbol noch sichtbar ist .. und ich weiß nicht, warum ... es wäre toll, wenn jemand hat eine Idee für mich.

Antwort

1

Es scheint das Element ion-nav-buttons hat sein eigenes Styling, das alle Elemente darüber überschreibt.

Wenn Sie die ng-show näher an die Schaltfläche verschieben, haben Sie eine bessere Kontrolle.

d.h statt

<div ng-show="Trashicon"> 
    <ion-nav-buttons side="right"> 
     <button ng-click="deleteProducts()" class="button button-icon ion-ios-trash-outline pull-right light"></button> 
    </ion-nav-buttons> 
</div> 

tun dies

<div> 
    <ion-nav-buttons side="right"> 
     <button ng-show="Trashicon" ng-click="deleteProducts()" class="button button-icon ion-ios-trash-outline pull-right light"></button> 
    </ion-nav-buttons> 
</div> 
+0

es funktioniert !!!! Vielen Dank Tseliso :) –

+0

Froh ich könnte helfen :) Vergessen Sie nicht, die Antwort zu akzeptieren! –

+0

was meinst du? –

0

Wenn i ng-Show versuchen = „1 == 2“ es auch nur im Seitenmenü funktioniert ....

und nicht im Seitenmenü Inhaltsbereich .. das div wird zeigen, ob ng -show = "1 == 2" ... seltsam