せずにルート決意を取り消し、これは私のANGULARJSあるNG-ROUTEコード:AngularJs:私は間違ったログインの場合には、私のルートをキャンセルする必要が約束
monApp.config(function ($routeProvider, $locationProvider){
var rsf = { // This function tells if user is logged or not
"check":function(stockeUtilisateur,$location,Notification){
u = stockeUtilisateur.getUtilisateur();
if(u.role=='admin'||u.role=='utilisateur'){
Notification.success("Youre logged");
}
else{
$location.path('/accueil'); //redirect user to home.
Notification.error("bad password");
}
}
};
$routeProvider
.when('/accueil', {
templateUrl: 'vues/accueil.html',
controller: 'neutreCtrl'
})
.when('/compte', {
templateUrl: 'vues/compte.html',
controller: 'compteCtrl',
resolve:rsf
})
.otherwise({redirectTo: '/accueil'});
})
問題は、私はしたくないということですログインが失敗した場合は$location.path()
を使用してください。なぜなら、ユーザーログインが間違っている限り、ルートに留まり、単にルートをキャンセルするだけで、ページ全体がリロードされるからです。
私は使用できるコードがわからないので、これを$location.path()
:event.preventDefault();
の代わりに試しましたが、動作しません。
私もresolve.cancel();
を試しましたが、うまくいきません。
$location.path()
を削除しても解決され、ユーザーがログに記録されていないときに「compte」ビューが表示されます。
他の言葉で言えば、リダイレクトしたくないのですが、パスワードが間違っても何もしないようにしたいと思います。
多分あなたはアイデアがありますか?
ありがとうございます。
私は答えを投稿するのには自信がありませんが、速い研究では、 '$ locationChangeStart'イベントでデフォルトを使用しないように指示しています。 https://weblogs.asp.net/dwahlin/cancelling-route-navigation-in-angularjs https://stackoverflow.com/questions/16344223/angularjs-cancel-route-change-event –
私は@ジョーダンをエコーします。 JDは、ルータイベントを活用すると述べた。イベントハンドラ中に確認するには、ログイン情報*いくつかの場所* **を一時的に**保存する必要があります。ログインの成功/失敗に関係なく、そのデータを必ず削除してください。 – jusopi