最近从ios转来做使用ionic框架开发的混合型app 碰到个问题就是关于tabs的三级页面不能隐藏的情况,
开始时我是这么写的:
//这样只能隐藏二级页面
.directive('hideTabs', function($rootScope) {
return {
restrict: 'A',
link: function(scope, element, attributes) {
scope.$on('$ionicView.beforeEnter', function() {
scope.$watch(attributes.hideTabs, function(value){
$rootScope.hideTabs = value;
});
});
scope.$on('$ionicView.beforeLeave', function() {
$rootScope.hideTabs = false;
});
}
};
})
怎么解决呢,通过中文官网里的论坛及百度种种,发现可以通过俩种方法解决,
1.在上面的方法的($rootScope.hideTabs = value;)后面跟上判断方法:
if ($location.path() == '/main_tab/mian'||$location.path() == '/main_tab/mian'){
}根据情况返回true/false
2.稍微改动js写法, 如下:
.directive('hideTabs', function($rootScope) {
return {
restrict: 'A',
link: function(scope, element, attributes) {
scope.$on('$ionicView.beforeEnter', function() {
scope.$watch(attributes.hideTabs, function(value){
$rootScope.hideTabs = 'tabs-item-hide';
});
});
scope.$on('$ionicView.beforeLeave', function() {
scope.$watch(attributes.hideTabs, function(value){
$rootScope.hideTabs = 'tabs-item-hide';
});
scope.$watch('$destroy',function(){
$rootScope.hideTabs = false;
})
});
}
};
})