バックボーン アプリケーションのログインに取り組んでいますが、サーバーを呼び出さずに解決する方法がわからない問題が発生しました。これにより、他の人々がバックボーンでこの種のものをどのように扱っているかについて、私のチームで議論が持ち上がりました.
今日は金曜日だし、たぶん脳死状態だけど…
ユーザーモデルがあります。ビューの login メソッドは、新しいユーザー モデルを作成し、そのログイン メソッドを呼び出して、ユーザーの資格情報と、ユーザー情報を含むオブジェクトを持つコールバック関数を渡します。
ビューのログイン方法は次のとおりです。
login: function(event){
event.preventDefault();
var user = new App.User;
user.login($('#username').val(), $('#password').val(),
(function(msg) {
// success callback
if (msg.loggedIn) {
console.log("Authenticate successful: " + JSON.stringify(msg));
var data = { user : msg, bob : "bob", trigger:true };
console.log("Prepared data: " + JSON.stringify(data));
App.router.navigate('home',data);
} else {
console.log("Authenticate unsuccessful: " + JSON.stringify(msg));
}
}).bind(this),
function(msg) {
// failure callback
console.log("Authenticate communication failure: " + JSON.stringify(msg));
alert("Communication fail!");
App.router.navigate('login',{trigger:true});
});
}
私たちが理解しようとしているのは、このモデル データを別のルート (ホーム) で利用できるようにして、ビューで使用できるようにする方法です。
だから私はこのルーターを持っています:
routes: {
'': 'home',
'home': 'home',
'login': 'login'
},
home: function(data){
console.log(data);
}
ユーザーがログインしたら、ルートを更新してそのユーザー データにアクセスする必要がありますが、取得するためにサーバーに戻る必要はありません。
ユーザーがいくつかのステップを前後に移動する必要がある一種の「ウィザード」を構築しているため、心配していますが、アプリケーションをナビゲートするたびにサーバーにアクセスする必要はありませんが、グローバル変数に何かを保存する必要があるか (これはしたくありません)、毎回サーバーに戻る必要があります。他の人も同様の問題に対処しなければならなかったと確信しています。いくつかの洞察を探しているだけです。
ありがとう!