如何根据条件

时间:2016-01-21 19:23:15

标签: angularjs ionic-framework

我有一个有4个标签的Ionic Framework应用程序。但我只想在任何时候看到三个标签。

前两个标签始终可见(称为Tab1和Tab2)。但是第三个标签需要是两个不同内容之间的一个或另一个,而不是两个(称为Tab 3a和Tab 3b)。所以你将有Tab1,Tab2,Tab3a或Tab1,Tab2,Tab3b。

对于HTML,我想出了这个:

  <ion-tab title="Tab 1" href="#/tab/1" >
    <ion-nav-view name="tab-timeline"></ion-nav-view>
  </ion-tab>

  <ion-tab title="Tab 2" href="#/tab/2" >
    <ion-nav-view name="tab-2"></ion-nav-view>
  </ion-tab>

  <ion-tab title="Tab 3a" href="#/tab/3a" class="{{enableTab3a()}}">
    <ion-nav-view name="tab-3a"></ion-nav-view>
  </ion-tab>

  <ion-tab title="Tab 3b" href="#/tab/3b" class="{{enableTab3b()}}">
    <ion-nav-view name="tab-3b"></ion-nav-view>
  </ion-tab>

现在我需要一个指令,根据条件将Tab3a和Tab3b上的类切换为“ng-show”和“ng-hide”。

确定要显示哪个选项卡的条件存储在localStorage变量中,并在控制器中访问,如下所示:

if(window,localStorage["tab3"] == 'a' {
   $scope.tab3a = true;
   $scope.tab3b = false;
} else {
   $scope.tab3a = false;
   $scope.tab3b = true;
}

如何根据条件构建触发类的指令,并仅显示正确的选项卡(Tab3a或Tab3b)?

其他信息:

我有5个控制器。每个选项卡都有一个控制器,tabs.html有一个控制器。这就是为什么我认为指令最适合这个,如果指令可以对localStorage变量的变化作出反应

1 个答案:

答案 0 :(得分:0)

使用离子标签属性隐藏

<ion-tab title="Tab 3a" href="#/tab/3a" hidden="{{tab3a}}">
    <ion-nav-view name="tab-3a"></ion-nav-view>
</ion-tab>

<ion-tab title="Tab 3b" href="#/tab/3b" hidden="{{!tab3a}}">
    <ion-nav-view name="tab-3b"></ion-nav-view>
</ion-tab>

并在您的控制器中

$scope.tab3a = window.localStorage["tab3"] == 'a';