2015-01-13 46 views
0

有没有办法重新初始化当前活动的控制器?Angularjs重新初始化主动控制器

这将帮助我在不添加额外的解决方法代码的情况下从一个页面切换到另一个页面。

例如:

<div ng-controller='Blah as ex'> 
    {{ex.name}} 
</div> 

,并在控制器布拉赫的初始化函数,这个名字会从服务中检索:

this.name = someService.name; 

因此,对于上面的例子,我想有一个将重新初始化我的Blah控制器的按钮。

编辑:这只是一个基本的例子。

我正在使用浏览器的“状态”,以便在控制器中恢复“后退”和“前进”数据。

有几个案例,所以我试图简化其流程(目前的工作,而不是为“漂亮”)

+0

为什么你不会只是再次打电话给服务?这将刷新$ scope值。我想会重新加载你的整个控制器比重新加载你想要更新的单个东西要慢很多。 –

+0

这是一个非常基本的例子。我的应用程序从一个页面转换到另一个页面,我需要它重新加载它的控制器。 – PenguinSource

+0

为了澄清,您将路由到不同的视图,并且您希望每次查看每个视图的控制器时都会刷新它的路由。 –

回答

0

将这样的事情是一个可能的解决方案?使用route.reload重新加载页面?

myapp.Controller('SampleController', function($location, $route) { 

    $scope.navTo = function(url) { 
    if ($location.path() === url) { 
     $route.reload(); 
    } else { 
     $location.path(url); 
    } 
    } 

}); 
+0

这是行不通的,但我会想到它会有两个主要问题,首先它会重新加载所有的html标题,所以不仅仅是控制器。这会使它效率低得多。 第二个问题是SPA的路径可能无法重新加载到正确的位置;当然,这是一个侧面问题。 – PenguinSource

+0

我的意思是我能想到的唯一的其他事情就是在控制器中添加一个初始化函数,将所有值重置为默认状态。 –

+0

用不同的解决方案解决了我的问题。谢谢您的帮助。 – PenguinSource

相关问题