13

$interval を使用し、コントローラーがいつ破棄されたかを検出する必要があります。これまで$destroy イベントを使用してきましたが、完全に機能しました。たとえば、この基本的なコードでは、 別のページに移動するとコンソールに「destroy」<a href="#/myNewUrl">と出力されます ( myView.html のシンプルなコードを使用)。

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"すると無効になります。

しかし、私は destroy イベントよりも良い方法を見つけました。Ionic は ( $ionicViewに) 新しいイベントを追加し、ページを離れたとき (およびページがキャッシュされたままになったとき) を次のように検出できるようになりました$ionicView.leave

詳細については、http : //ionicframework.com/docs/nightly/api/directive/ionView/をご覧ください。

4

2 に答える 2

-3

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

Ionic 開発チームからこんにちは。彼らはメモリをリークするのが好きです。

設定するだけ

$ionicConfigProvider.views.maxCache(0);

それはそれを行う必要があります

于 2015-10-15T10:55:31.890 に答える