У меня есть приложение SPA с несколькими представлениями в AngularJS, я определил $ интервал, который запускается из другого контроллера представления.Когда я щелкаю btn с вызванной функцией и строкой $ interval.cancel ();в нем это не останавливается.
Вот примеры моего кода:
MainController:
$scope.$on("startInterval", function () {
$interval(function warningsControl() {
console.log("Timer stamp!");
$.ajax({
// some web api call which works fine
})
}, 10000);
});
$scope.stop = function () {
$interval.cancel();
}
$scope.logoutButton = {
text: "Logout",
type: "normal",
visible: false,
onClick: function () {
// some working code
$scope.stop();
var logoutBtn = $("#logout-btn").dxButton("instance");
logoutBtn.option({
visible: false
});
}
}
И SecondController:
$scope.authenticateButton = {
type: "default",
text: "Log In",
onClick: function () {
$.ajax({
// some web api calling
success: (data) => {
// some working code
$rootScope.$broadcast("startInterval");
}
})
}
}
Этот интервал запуска кода и everithing работает нормально, до того момента, пока я не нажму Logout btn - он сделал everithing, кроме остановки интервала.
Есть идеи, как это исправить?Буду благодарен за совет.