2016-05-03 4 views
1

私はAngularを初めて使用しています。私はこのようなui.routerとI構成された状態を使用しています:AngularJS - n分間の間のアクションを検出せずにデフォルト状態に戻る

app.config(function($stateProvider, $urlRouterProvider) { 
$urlRouterProvider.otherwise("/category"); 
$stateProvider 
    .state('category', { 
     url: '/category', 
     templateUrl: 'category.html', 
     controller: 'categoryController as catCtrl', 
     reload: true 
    }) 
    .state('category.categoryDetail', { 
     url:'/:id', 
     templateUrl: 'categoryDetail.html', 
     controller: 'categoryDetailController as catDetailCtrl', 
    }) 

    .state('category.categoryDetail.product', { 
     url:'/product/:prod_id/:filter_model/:current_page', 
     templateUrl: 'product.html', 
     controller: 'productController as productCtrl' 
    }) 

を私は「N」分間何も操作がないかどうかを確認するタイムアウト機能を設定する必要があり、その後、私はデフォルトの状態'category'に戻るには、ウェブサイトを必要とします。私はjQuerysetTimeout()を使用してそれを行うことができることを知っていますが、どこにコードを埋め込むべきかわかりません。

+0

あなたは何について話していますか?バックエンドと話をして、画面のどこかをクリックしますか? – sdfacre

+0

最初に着陸したい場所では、カウントダウンに$ timeout(jQueryのsetTimeoutを使用するのと同じように)を使い、終了すると$ locationを使ってユーザーをリダイレクトします。あなたが再度チェックする必要がある場合は、アクションが発生した場合は、タイムアウトをキャンセルしたり、新しいものを開始したりしてください。 –

答えて

3

は、私はあなたがapp.runを使用することができng-idle

+0

いいです! upvote :) –

+0

非常に便利ですが、私はすべてのコントローラで同じコードを繰り返す必要がありますか?私はあらゆる場所から「見る」必要があるからです。 –

+0

.runと一緒に使用できます –

関連する問題