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

AngularJS-Ionic:返回控制器时在控制器中执行代码,angularjs,ionic-framework,angularjs-controller,Angularjs,Ionic Framework,Angularjs Controller,我是AngularJS社区的新手,我正在用这个框架开发我的第一个应用程序 我使用以下代码创建了一个新控制器: .controller('AccountCtrl', function($scope, $location) { alert('test'); }) 我的路线是: .state('app.account', { url: "/account", views: { 'menuContent': { templateUrl: "templates

我是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),则不会再次显示警报弹出窗口

谁能给我解释一下原因吗


谢谢你的帮助

要在ui路由器中每次重新加载控制器,请使用.state上的
reload:true
选项

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

在爱奥尼亚框架中,默认情况下,视图和控制器将被缓存。您可以将侦听器添加到视图范围,以便在视图再次处于活动状态时接收通知。有关更多信息,请参阅: 及

您还可以禁用视图上的缓存


奇怪的是,通常每次url更改时控制器都会被实例化。你是用离子框架开发的吗?在Ionic中,视图和控制器被兑现。您可以将侦听器添加到上的作用域“$scope.$(“$ionicView.beforeEnter”,myUpdateFunction”。你好,Stefan,是的,我正在使用Ionic Framework。我必须在哪里添加此侦听器?在我的控制器中?我添加了一个示例作为您问题的答案。希望对您有所帮助,您的答案对我不起作用:/是因为我在使用Ionic Framework吗?重载是指在参数更改后是否应重建as状态
.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');
    });
})`