AngularJS-Ionic:返回控制器时在控制器中执行代码
我是AngularJS社区的新手,我正在用这个框架开发我的第一个应用程序 我使用以下代码创建了一个新控制器: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
.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');
});
})`