Я запускаю Angular 1.6 вместе с TurboLinks 5. По большей части все работает хорошо. Я отключил кеш TurboLinks и вручную загрузил Угловое значение для некоторых предложений в этом сообщении: Using angularjs with turbolinksTurboLinks with Angular
У меня возникла одна проблема, хотя у меня есть интервал $, выполняемый внутри службы. При смене страниц через TurboLinks снова активируются угловые бутстрапы, и служба создает новый интервал, но старый продолжает работать! Каждый раз, когда происходит событие изменения страницы, создается новый интервал, и они продолжают складывать друг друга.
Я попытался уничтожить угловое приложение, когда нажата ссылка TurboLinks (с использованием кода ниже), но это похоже на то, что все угловые приложения перестали работать. Я также не могу получить ссылку на более старый интервал после перезагрузки страницы.
var app = angular.module('app', []);
// Bootstrap Angular on TurboLinks Page Loads
document.addEventListener('turbolinks:load', function() {
console.log('Bootstrap Angular');
angular.bootstrap(document.body, ['app']);
});
// Destroy the app before leaving -- Breaks angular on subsequent pages
document.addEventListener('turbolinks:click', function() {
console.log('Destroy Angular');
var $rootScope = app.run(['$rootScope', function($rootScope) {
$rootScope.$destroy();
}]);
});
Без $rootScope.$destroy()
на turbolinks:click
события, все остальное, кажется, работает, как ожидалось.
Я знаю, что я мог бы запустить здесь мероприятие и убить интервал в службе, но в идеале я хотел бы, чтобы каким-то образом это автоматически обрабатывалось и гарантировало, что между запросами TurboLinks ничего не происходит. Есть идеи?