之前我的问题很糟糕,所以我重写了一切。
我正在使用ui.router
进行状态导航。
正常情况下,如果加载新状态,模板和控制器将被刷新/重新加载。由于我在模板中有一对ng.repeat
和ng.if
,这会导致闪烁,因为首先视图将使用空变量进行渲染,并且在控制器再次获取其数据之后,它将再次呈现。
我的想法是,我为每个状态主控制器定义一个接口方法(例如'重新激活')。这个方法我会从导航菜单中调用,我也在其中设置状态。 这实际上很有效。
var controllerScope = angular.element($('#content')).scope();
controllerScope.reactivated();
我的问题是:如何在切换到另一个时保持$state
(渲染的html,控制器状态)的状态,如果重新进入,我会离开那里?
答案 0 :(得分:0)
或者,如果用户点击了活动链接,您可以阻止状态更改
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
event.preventDefault();
// transitionTo() promise will be rejected with
// a 'transition prevented' error
})