ui-路由器 onEnter() 未从 Ionic 应用程序中的 $state.go() 调用
ui-router onEnter() not being called from $state.go() within Ionic app
在我的 Ionic 应用程序中使用 ui-路由器的 $state.go()
时,未调用 onEnter
方法。
状态将从 tab.settings
过渡到 tab.queries
。状态转换良好。如何从 $state.go()
调用中调用 onEnter
方法? 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'
}
}
});
设置Ctrl
vm.removeAll = function() {
Data.removeAll().then(function() {
$state.go('tab.queries');
});
};
QueryCtrl
function activate() {
console.log('Activating');
}
尝试将视图对象中的 onEnter 向上移动到状态对象,我刚刚 运行 遇到了同样的问题,它对我来说似乎工作正常。
.state('tab.queries', {
url: '/queries',
views: {
'tab-queries': {
templateUrl: 'templates/tab-queries.html',
controller: 'QueryCtrl'
}
},
onEnter: function() {
activate();
}
})
在我的 Ionic 应用程序中使用 ui-路由器的 $state.go()
时,未调用 onEnter
方法。
状态将从 tab.settings
过渡到 tab.queries
。状态转换良好。如何从 $state.go()
调用中调用 onEnter
方法? 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'
}
}
});
设置Ctrl
vm.removeAll = function() {
Data.removeAll().then(function() {
$state.go('tab.queries');
});
};
QueryCtrl
function activate() {
console.log('Activating');
}
尝试将视图对象中的 onEnter 向上移动到状态对象,我刚刚 运行 遇到了同样的问题,它对我来说似乎工作正常。
.state('tab.queries', {
url: '/queries',
views: {
'tab-queries': {
templateUrl: 'templates/tab-queries.html',
controller: 'QueryCtrl'
}
},
onEnter: function() {
activate();
}
})