2014-12-29 9 views
12

Ich benutze $ interval und muss erkennen, wenn der Controller zerstört wird. Bis jetzt, Ich habe das Ereignis $ destroy verwendet und es funktionierte perfekt. Zum Beispiel mit diesem grundlegenden Code, druckt es "zerstören" in der Konsole, wenn ich auf eine andere Seite gehe (mit einem einfachen <a href="#/myNewUrl"> in myView.html).

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

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

}]); 

Aber da ich Ionic auf die neue Version (v1.0.0-beta.14) aktualisiert, die die neue Version Eckige zu (v1.3.6) verwendet, das zerstören $ Ereignis nicht Erkenne, wenn ich auf eine andere Seite gehe.

Hat jemand das gleiche Problem? Wie kann ich es lösen? Vielen Dank für Ihre Antwort!


EDIT:

Ich habe feste endlich das Problem !!! Mit der neuen Ionic-Version wird die Ansicht automatisch zwischengespeichert. Wenn Sie cache-view="false" in der Vorlage hinzufügen, deaktivieren Sie sie.

Aber ich fand eine besten Weg als das Ereignis zu zerstören. Ionic hat neue Ereignisse hinzugefügt (unter $ ionicView) und jetzt können Sie erkennen, wenn Sie die Seite verlassen (und die Seite bleibt zwischengespeichert) mit: $ionicView.leave.

Um weitere Informationen zu erhalten: http://ionicframework.com/docs/nightly/api/directive/ionView/

Antwort

12

Ist Ihre Vorlage zwischengespeichert? Wenn Sie in Ihren Statusrouten keine cache: false haben, wird der Controller nicht zerstört.

+0

Es war !! Ich finde nichts über die Optionen in den Statusrouten, aber das Hinzufügen von 'cache-view =" false "' in der Ionenansicht funktioniert. –

-2

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

Es ist ein Hallo von Ionic Entwicklerteam. Sie mögen es, Speicher zu verlieren, sehen Sie. nicht in den Zustand Routen aber das Problem war für den Cache, danke für die Hilfe

Setzen Sie einfach

$ionicConfigProvider.views.maxCache(0);

das tun sollte es

+1

Was für ein eigensinniger Kommentar. Der Fall wurde behandelt: http://ionicframework.com/docs/api/directive/ionView/. Sie können erkennen, wann die zwischengespeicherte Ansicht verlassen wird, und entsprechend handeln, wie der Asker präzisiert hat. –

+1

Bitte halten Sie sich an einen neutralen sachlichen Ratschlag und sichern Sie sich den Nachweis. "Es ist ein Hallo von Ionic Dev Team. Sie mögen es, Speicher zu verlieren, sehen Sie." Klingt mehr wie eine unhöfliche Meinung. Ihr Link sagt nichts, um zu bestätigen, dass sie gerne Speicher verlieren. – redfox05

Verwandte Themen