ui-router onEnter() 不会从 Ionic 应用程序中的 $state.go() 调用



在我的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'
        }
    }
});

设置控制

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

查询控制

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

尝试将 onEnter 从视图对象内部向上移动到状态对象,我刚刚遇到了同样的问题,它似乎对我来说工作正常。

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

最新更新