2016.10.9
2017.5.26

$intervalで登録した処理をページ遷移時にキャンセルする方法

$intervalで登録した処理は、他のページへ遷移する際にそのままにしておくと登録された処理が実行され続けるので、遷移と同時に処理をキャンセルした方がよく、以下はそのキャンセルの方法です。

コード


angular.module('myApp', [])
.controller('SampleCtrl', function ($scope, $interval, $filter) {
    // $interval処理の登録
    var intervalObj = $interval(function () {
        $scope.timeStr = $filter("date")(dt, "yyyy/M/d HH:mm:ss", "+0900");
    }, 1000);

    // 他画面へ遷移した際の終了処理
    $scope.$on('$destroy', function () {
        $interval.cancel(intervalObj);
    });
});

AngularJS】関連記事