0

なじみのない方のために説明すると、ngIdle はここにあります。

これは基本的に、多くの銀行がAngularを使用してWebサイトで行っているように、アイドルタイムアウトを作成する方法です.

それはうまく機能しますが、私が現在使用している方法は、コントローラーにいくつかの構成要素を配置することです。問題は、私は複数のコントローラーを使用していて、プロジェクト全体でこの構成をコピーして貼り付けたくないということです。

構成は次のようになります。

function closeModals()
    {           
      // Function closes any modals that are currently open (used when coming back from idle)
      if ($scope.warning) {
        $scope.warning.close();
        $scope.warning = null;
      }
      if ($scope.timedout) {
        $scope.timedout.close();
        $scope.timedout = null;
      }
    }

    $scope.$on('IdleStart', function () {   // What happens when the user goes idle (idle time is defined in app.js IdleProvider config)
      closeModals();
      $scope.warning = $modal.open({
        templateUrl: 'views/timeoutModal.html',
        windowClass: 'modal-danger'
      });
    });

    $scope.$on('IdleTimeout', function () { // This is what happens when the user waits passed the warning timer
      logout();
      closeModals();
      Idle.unwatch();
      $scope.$apply();
      alert("You have been signed out due to inactivity.");
    });

    $scope.$on('IdleEnd', function () { // What happens when the user comes back from being idle but before they are timed out
      closeModals();
      $scope.amIdle = false;
    });

基本的に、これらの構成設定を使用したいことをコントローラーに簡単に伝えることができ、それらをコントローラーに入れる必要なく使用できるようにしたいと考えています。

4

1 に答える 1