打开离子中的特定选项卡

时间:2015-12-30 10:20:34

标签: angularjs ionic

我有'交易'页面有3个标签(资金转帐,存款和迷你声明) 我还有一个包含菜单项的页面。如果单击该项目,则要在事务页面中打开特定选项卡。

我尝试了以下方式但没有工作,即只打开第一个标签

$scope.openAccountTabs = function(index){
   $state.go("Transactions");
   $ionicTabsDelegate.select(index);
};

enter image description here

1 个答案:

答案 0 :(得分:1)

好吧,这需要做很多改变才能完成这项工作。我已经尝试了这个和它的工作。这个

1:更改状态定义,传递$stateParams

.state('app.my_tabs', {
        url: "/{id:[a-zA-Z0-9]{1,24}}/{index:[a-zA-Z]{0,12}}",
        cache:false,
        views: {
            'menuContent@app': {
                controller: 'TabCrtl',
                templateUrl: "js/ModelOne/templates/TabView.html"
            }
        }
    })

注意:id为$ stateParams用于传递给API.not与标签UI相关。

2:点击按钮,传递要打开的标签的索引(0 =第一个标签,1 =第二个标签):

ui-sref="app.my_tabs({id:oneOrder._id,index:1})"

3:在Tab UI中:在默认选项卡中选择on-select,我尝试在ion-tabs中使用ng-init,这样该方法只能调用一次。但它没有用:

 <ion-tabs id="tab_view" class="tabs-top tabs-program tabs-color-positive">
    <ion-tab title="tab1" on-select="selectTabWithIndex()">

4:TabCrtl中的调整很少:

 var firstIndex = $stateParams.index;
    $scope.selectTabWithIndex = function() {
        if(firstIndex != null) {
            if (firstIndex == 1) {
                console.log("$stateParams.index :" + firstIndex);
                $ionicTabsDelegate.select(1);
            } else {
                $ionicTabsDelegate.select(0);
            }
            firstIndex=null;
        }
    }

注意:firstIndex=null;仅用于在再次点击标签时停止检查条件。我的错误逻辑,让你自己..!

多数民众赞成......它,它的工作......!一切顺利。!