2014-12-29 16 views
12

Tôi sử dụng khoảng thời gian $ và cần phát hiện khi bộ điều khiển bị hủy. Cho đến bây giờ, Tôi đã sử dụng sự kiện hủy $ và nó hoạt động hoàn hảo. Ví dụ với mã cơ bản này, nó in "tiêu diệt" trong bảng điều khiển khi tôi truy cập một trang khác (với một đơn giản <a href="#/myNewUrl"> trong myView.html).

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

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

}]); 

Nhưng kể từ khi tôi cập nhật Ionic lên phiên bản mới (v1.0.0-beta.14), có sử dụng các phiên bản mới để kiễu góc quá (v1.3.6), sự kiện $ phá hủy không phải là phát hiện khi tôi truy cập một trang khác.

Có ai gặp vấn đề tương tự không? Làm thế nào tôi có thể giải quyết nó? Cảm ơn bạn đã trả lời!


EDIT:

tôi cuối cùng đã khắc phục vấn đề !!! Bây giờ, với phiên bản Ionic mới, chế độ xem được lưu trữ tự động. Thêm cache-view="false" vào mẫu sẽ vô hiệu hóa nó.

Nhưng tôi đã tìm thấy một cách tốt nhất so với sự kiện hủy. Ionic đã thêm sự kiện mới (trên $ ionicView) và bây giờ bạn có thể phát hiện khi bạn rời khỏi trang (và trang được lưu trong bộ nhớ cache) với: $ionicView.leave.

Để biết thêm thông tin: http://ionicframework.com/docs/nightly/api/directive/ionView/

Trả lời

12

Mẫu của bạn có được lưu trong bộ nhớ cache không? Nếu bạn không có cache: false trong các tuyến đường của tiểu bang, thì bộ điều khiển sẽ không bị hủy.

+0

Nó không phải là ở các tuyến đường nhà nước nhưng vấn đề là cho bộ nhớ cache, cảm ơn vì sự giúp đỡ !! Tôi không tìm thấy bất cứ điều gì trên các tùy chọn trong các tuyến đường tiểu bang nhưng thêm 'cache-view =" false "' trong chế độ xem ion, nó hoạt động. –

-2

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

Đó là lời chào từ nhóm dev Ionic. Họ thích bị rò rỉ bộ nhớ, bạn thấy đấy.

Chỉ cần thiết lập

$ionicConfigProvider.views.maxCache(0);

Điều đó sẽ làm điều đó

+1

Ý kiến ​​bình luận là gì. Trường hợp đã được đề cập: http://ionicframework.com/docs/api/directive/ionView/. Bạn có thể phát hiện khi chế độ xem được lưu trong bộ nhớ cache xuất hiện và hành động tương ứng, như người hỏi đã đặt trước. –

+1

Hãy tuân theo lời khuyên thực tế trung lập và sao lưu bằng chứng. "Đó là một lời chào từ đội ngũ Ionic dev. Họ thích bị rò rỉ bộ nhớ, bạn thấy đấy." 'Nghe có vẻ giống như một ý kiến ​​thô lỗ. Liên kết của bạn không nói gì để xác nhận rằng họ thích bị rò rỉ bộ nhớ. – redfox05

Các vấn đề liên quan