ui.router不重新加载控制器

cod*_*fun 2 javascript angularjs ionic-framework

我正在使用Ionic Framework开发一个应用程序,并且有多个视图.路线名称是app.view1app.view2.我转换到控制器使用的下一个视图$state.go("app.view2"),当我点击后,app.view1的控制器不再执行,这在我的应用程序中非常重要.

请告诉我如何在每次路由时执行控制器.

Bip*_*ari 7

Ionic缓存视图以获得更快的性能.它使用的功能ng-router.

Ionic将最多缓存10个视图,不仅可以配置这些视图,而且应用程序还可以明确说明应该和不应该缓存哪些视图.

http://ionicframework.com/docs/api/directive/ionNavView/

有多种方法可以解决此问题.

选项1

如果希望控制器在每次显示视图时执行,则可以禁用该特定路由的缓存.

$stateProvider.state('myState', {
   cache: false,
   url : '/myUrl',
   templateUrl : 'my-template.html'
})
Run Code Online (Sandbox Code Playgroud)

要么

<ion-view cache-view="false" view-title="My Title!">
  ...
</ion-view>
Run Code Online (Sandbox Code Playgroud)

选项2

您可以为所有视图禁用缓存.甚至可以控制观看次数.我不知道这对你是否有用.

$ionicConfigProvider.views.maxCache(0);
Run Code Online (Sandbox Code Playgroud)

选项3

我的最爱.你可以使用$ionicView.enter活动.这可以保证在执行视图时需要执行的代码.所以你可以区分代码应该每次都执行一次.我想这会对性能产生积极影响.

用法

$scope.$on('$ionicView.enter', function(){
  // Coding
});
Run Code Online (Sandbox Code Playgroud)

祝你好运,编码愉快!