こんにちは私はこの問題を示すためにplunkrを設定しました。 https://plnkr.co/edit/tO4xbD15A3FvjpaGw6J5?p=previewコールバックからルータ経由でリダイレクトした後、Angular2コンポーネントにクラス参照がありません
これは、ログインに成功した後のリダイレクトを行うコードの主要部分です。 :これはコールバック関数であるように私は例は、ファイル「アプリ/ authentication.ts」と連携し、私は2つのバージョンで入れている...「isLoggedIn」変数に
loginLaunch() {
console.log("authentication.ts:loginLaunch()");
let authProperties = AUTH_PROPERTIES;
authProperties.immediate = false;
// Sign the user in, and then retrieve their ID.
let ga = gapi.auth2.getAuthInstance();
let router = this.router;
let redirect2 = this.redirectUrl;
ga.signIn(authProperties).then(function() {
console.log("authentication.ts:loginLaunch() - logged on:"+ ga.currentUser.get().getId());
//this.isLoggedIn=true;
// Redirect the user
console.log("authentication.ts:loginLaunch() - logged in now, redirect to "+redirect2);
router.navigate([redirect2]);
});
}
を参照することはできません"app/authentication.ts.works"と "app/authentication.ts.worksNot"
最初のものはダミー認証です(実際にはパスワードを要求しません)。もう1つはGoogle認証を使用します。
問題はこれです。 Google認証(約束/コールバックを使用)では、リダイレクト後のAngular2コンポーネントにコンポーネントクラスへの参照がありません。この場合、ユーザーがログインした後、 "label"の詳細が表示されるはずですが、そうではありません。あなたはここで何が起こっているか考えていますか?
あなたは、「アプリ/ authentication.ts」予想通り、アプリケーションの動作に「アプリ/ authentication.ts.works」の内容をコピーする場合:ラベル情報は、ログイン後にコンポーネント1ページに表示され
。助けていただければ幸いです。
ヘルムート
ありがとうございました。違いはほとんどありませんでしたが、それを調べて変更を加えます。 –