ionic中隱藏tabs(tabs-item-hide)(首頁顯示tab,其他頁面不顯示)

我之前看到之前的同志用指令.directive連接ionic封裝了“ 'tabs-item-hide'”這個類(屬性),灰常受用,但是在我做項目的時候,用原來的代碼,路由去到另外一個頁面,tab會彈出來($scope.$on('$destroy',function(){  $rootScope.hideTabs = ' '; }) 這個方法在作怪),但是去掉這個方法後,發現全部頁面都已經沒有tab了大哭,實際上我相信絕大部分的APP的首頁都是需要tab的,其他頁面可以沒有,下面是我的解決辦法,分享給他家:

一 . 原來代碼:

1.tabs頁面

<ion-tabs class="tabs-icon-top tabs-positie {{hideTabs}}>

...

</ion-tabs>

2.跳轉後頁面

<ion-view hide-tabs>

..

</ion-view>

3. 指令

.directive('hideTabs',function($rootScope){

    return {

        restrict:'AE',

        link:function($scope){

            $rootScope.hideTabs = 'tabs-item-hide';

            $scope.$on('$destroy',function(){

                $rootScope.hideTabs = ' ';

            })

        }

    }

}

二.修改後代碼:

1.tabs頁面

<ion-tabs class="tabs-icon-top tabs-positie {{hideTabs}}{{showTabs}}>

tab1

tab2

.....

</ion-tabs>



2.跳轉後頁面各種views

//需要隱藏的view

<ion-view hide-tabs>

..

</ion-view>

//需要顯示的主頁的view

<ion-view show-tabs>

..

</ion-view>

3. 指令



var app = angular.module("uniApp", ["ionic"]);

app.directive('hideTabs',function($rootScope){

    return {

        restrict:'AE',

        link:function($scope){

            $rootScope.hideTabs = 'tabs-item-hide';

            //刪除這裏

            /*$scope.$on('$destroy',function(){

                $rootScope.hideTabs = ' ';

            })*/

        }

    })

//定義顯示tab的showTabs指令

.directive("showTabs", function($rootScope) {
return {
restrict: 'AE',
link: function($scope) {
$rootScope.hideTabs = '';


}
}
})

這樣就可以達到目的了,有什麼問題可以評價追問
發佈了14 篇原創文章 · 獲贊 2 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章