ui-router onEnter()没有在Ionic app中从$ state.go()调用

时间:2015-02-04 09:37:44

标签: angularjs angular-ui-router ionic

在我的 Ionic 应用中使用ui-router的$state.go()时,不会调用onEnter方法。

州将从tab.settings过渡到tab.queries。国家转型很好。如何从onEnter电话中调用$state.go()方法?输入子视图时是否会调用onEnter

路线

$stateProvider
.state('tab', {
    url: "/tab",
    abstract: true,
    templateUrl: "templates/tabs.html"
})
.state('tab.queries', {
    url: '/queries',
    views: {
        'tab-queries': {
            templateUrl: 'templates/tab-queries.html',
            controller: 'QueryCtrl',
            onEnter: function() {
                activate();
            }
        }
    }
})
.state('tab.settings', {
    url: '/settings',
    views: {
        'tab-settings': {
            templateUrl: 'templates/tab-settings.html',
            controller: 'SettingsCtrl'
        }
    }
});

SettingsCtrl

vm.removeAll = function() {
    Data.removeAll().then(function() {
        $state.go('tab.queries');
    });
};

QueryCtrl

function activate() {
  console.log('Activating');
}

1 个答案:

答案 0 :(得分:4)

尝试将onEnter从视图对象中移动到一个级别到状态对象,我刚遇到同样的问题,它对我来说似乎没问题。

    .state('tab.queries', {
        url: '/queries',
        views: {
            'tab-queries': {
                templateUrl: 'templates/tab-queries.html',
                controller: 'QueryCtrl'
            }
        },
        onEnter: function() {
            activate();
        }
    })