2017-02-13 19 views
0

ビューに応じてアイコンを非表示にしたい。どのion-nav-barはここだけtabsCtrlビューに関する「イオンナビゲール」のボタンの表示/非表示

からアクセスされているので、私が行うことができませんよと、ビューのマークアップである:ここで

<ion-nav-bar class="bar-stable"> 
    <ion-nav-back-button> </ion-nav-back-button> 
    <ion-nav-title>My App Title</ion-nav-title> 
    <ion-nav-buttons side="right"> 
    <button class="button icon ion-ios-information-outline" ng-click="openFaqModal()" ng-hide="showHideFAQ"></button> 
    <button class="button icon ci-bookmark" ng-click="openBoookmarkModal()" ng-show="showHideBookmark"></button> 
    </ion-nav-buttons> 
</ion-nav-bar> 

はコントローラである:ここでは

// Tab Controller - *** This Work *** 
.controller('TabCtrl', function ($scope) { 
    $rootScope.showHideFAQ = true; 
    $rootScope.showHideBookmark = true; 
}) 

// Detail Controller - *** This do not work *** 
.controller('DetailCtrl', function ($scope) { 
    $rootScope.showHideFAQ = true; 
    $rootScope.showHideBookmark = true; 
}) 

はルートです:

// setup an abstract state for the tabs directive 
.state('tab', { 
    url: '/tab', 
    abstract: true, 
    templateUrl: 'views/tabs.html', 
    controller: 'TabCtrl' 
}) 

.state('tab.detail', { 
    url: '/resources/:resourcesId', 
    views: { 
    'tab-resources': { 
     templateUrl: 'views/detail.html', 
     controller: 'DetailCtrl' 
    } 
    } 
}) 

"TabCtrl"で動作している理由はわかりませんが、 "Deta両方のコントローラが1つのビューにロードされるため、「ilCtrl」が表示されます。私はそれがscopeと何か関係があると疑う。

+0

私はあなたが両方のコントローラに** ** $のrootScopeを注入するために欠場し、あなたが** $のrootScopeに値を設定したら、**になると思いますアプリケーションセッション全体を通して同じままです。 – Naitik

+0

@ Naitik私はそれをもう一度試みましたが、TabCtrlがすべてのビューで利用可能であると言われているので、希望のビューに入ったらそれを元に戻すことはできません。 – Syed

+0

** ** $ rootScope **の代わりに** $ localStorage **を使用してください – Naitik

答えて

0

私は私の問題を解決するために$ionicView.enter$ionicView.leaveを使用しています:

// Detail Controller 
.controller('DetailCtrl', function ($scope, $ionicView) { 
    // Show Bookmark and Hide FAQ icon 
    $scope.$on('$ionicView.enter', function() { 
    $rootScope.showHideFAQ = true; 
    $rootScope.showHideBookmark = true; 
    }); 

    // Hide Bookmark and Show FAQ icon 
    $scope.$on('$ionicView.leave', function() { 
    $rootScope.showHideFAQ = false; 
    $rootScope.showHideBookmark = false; 
    }); 
}) 
関連する問題