ui.router:离开时保存$ state状态,重新进入时保持连续状态

时间:2016-06-24 07:15:35

标签: javascript angularjs angular-ui-router

之前我的问题很糟糕,所以我重写了一切。

我正在使用ui.router进行状态导航。

正常情况下,如果加载新状态,模板和控制器将被刷新/重新加载。由于我在模板中有一对ng.repeatng.if,这会导致闪烁,因为首先视图将使用空变量进行渲染,并且在控制器再次获取其数据之后,它将再次呈现。

我的想法是,我为每个状态主控制器定义一个接口方法(例如'重新激活')。这个方法我会从导航菜单中调用,我也在其中设置状态。 这实际上很有效。

var controllerScope = angular.element($('#content')).scope();
controllerScope.reactivated();

我的问题是:如何在切换到另一个时保持$state(渲染的html,控制器状态)的状态,如果重新进入,我会离开那里?

1 个答案:

答案 0 :(得分:0)

或者,如果用户点击了活动链接,您可以阻止状态更改

 $rootScope.$on('$stateChangeStart', 
      function(event, toState, toParams, fromState, fromParams){ 
          event.preventDefault(); 
          // transitionTo() promise will be rejected with 
          // a 'transition prevented' error
 })