AngularJS - Ionic:回到它时在控制器中执行代码

时间:2015-04-01 08:55:44

标签: angularjs ionic-framework angularjs-controller

我是AngularJS社区的新手,我正在使用此框架开发我的第一个应用程序。

我使用以下代码创建了一个新控制器:

.controller('AccountCtrl', function($scope, $location) {
alert('test');
})

我的路线:

.state('app.account', {
    url: "/account",
    views: {
      'menuContent': {
        templateUrl: "templates/account.html",
        controller: 'AccountCtrl'
      }
    }
  })

首次访问控制器时会显示警告弹出窗口。但是,如果我更改URL并返回到AccountCtrl(使用经典的html a),则不再显示警报弹出窗口。

有人可以向我解释原因吗?

Thanx为你提供帮助!

2 个答案:

答案 0 :(得分:1)

每次在ui路由器中重新加载Controller,在.state上使用reload: true选项

$stateProvider
.state('app.account', {
      url: "/account",
      reload: true //forcefully reload route and load controller again
})

答案 1 :(得分:1)

在Ionic Framework中,默认情况下将缓存视图和控制器。您可以向视图范围添加侦听器,以便在视图重新处于活动状态时接收通知。有关详细信息,请参阅:http://ionicframework.com/docs/api/directive/ionView/http://ionicframework.com/docs/api/directive/ionNavView/

您还可以在视图<ion-view cache-view="false">

上停用缓存
.controller('AccountCtrl', function($scope, $location) {
    $scope.$on('$ionicView.beforeEnter', function () {
            // update campaigns everytime the view becomes active
            // (on first time added to DOM and after the view becomes active after cached
        alert('test');
    });
})`