事件$ scope。$ on(' $ destroy')无法更新离子&角

时间:2014-12-29 14:00:46

标签: angularjs ionic

我使用$ interval并需要检测控制器何时被销毁。到目前为止,我已经使用了$ destroy事件并且它完美地运行了。例如,使用这个基本代码,当我转到另一个页面时(在myView.html中使用简单的<a href="#/myNewUrl">),它会在控制台中打印&#34; destroy&#34;

angular.module('myModule').controller('myController', ['$scope', function($scope) {

    $scope.$on('$destroy', function() {
        console.log('destroy');
    });

}]);

因为我将Ionic更新为新版本(v1.0.0-beta.14),它也将新版本用于Angular(v1.3.6), $ destroy事件我去另一页时没有检测到

有人遇到同样的问题吗?我怎么解决它? 谢谢你的回答!


修改

我终于解决了这个问题!现在,使用新的Ionic版本,视图会自动缓存。在模板中添加cache-view="false"会将其禁用。

但我找到了一种最好的方式而不是毁灭事件。 Ionic添加了新事件(在 $ ionicView 上),现在您可以使用:$ionicView.leave检测何时离开页面(并且页面保持缓存状态)。

获取更多信息:http://ionicframework.com/docs/nightly/api/directive/ionView/

2 个答案:

答案 0 :(得分:13)

您的模板是否已缓存?如果您的州路线中没有cache: false,则控制器不会被销毁。

答案 1 :(得分:-2)

http://forum.ionicframework.com/t/how-to-destroy-controllers-in-ion-tab-directive/16658

这是Ionic开发团队的问候。你知道,他们喜欢泄漏记忆。

只需设置

$ionicConfigProvider.views.maxCache(0);

应该这样做