2
구성 요소 (fb.component.ts)에서 서비스의 기능 (auth.service.ts의 loginFb)을 호출하려고합니다. 나는 모든것을 가져 와서 서비스를 시작한 것으로 보인다. 여전히 'loginfb'정의되지 않은 오류가 발생합니다. 내 auth.service.ts : 내 fb.component.ts에서서비스의 Angular2 기능이 정의되지 않았습니다.
import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class AuthService {
constructor(private http: Http) {}
loginFb(uid, accessToken): boolean{
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let body = JSON.stringify({"uid":uid,"accessToken": accessToken});
this.http.post('http://localhost:3002/signinfb',body,{headers:headers})
.toPromise()
.then(response => {
localStorage.setItem('id_token', response.json().id_token);
return true;
})
.catch(this.handleError);
return false;
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}
}
:
import { Component, OnInit } from '@angular/core';
import { Router } from "@angular/router";
import { AuthService } from './auth.service';
declare const FB:any;
@Component({
selector: 'facebook-login',
providers: [AuthService],
template: `
<div>
<button class="btn" (click)="onFacebookLoginClick()">
Sign in with Facebook
</button>
</div>
`,
})
export class FacebookLoginComponent implements OnInit{
constructor(private authService: AuthService) {
}
ngOnInit() {
FB.init({
appId : '234244113643991',
cookie : false,
xfbml : true,
version : 'v2.7'
});
}
statusChangeCallback(response) {
if (response.status === 'connected') {
let uid = response.authResponse.userID;
let accessToken = response.authResponse.accessToken;
// window.alert(uid+"|"+accessToken);
if (this.authService.loginFb(uid,accessToken)){
window.alert("GOOD!");
}else{
}
}else if (response.status === 'not_authorized') {
}else {
}
}
onFacebookLoginClick() {
FB.login(this.statusChangeCallback,
{scope: 'public_profile,email,user_friends,'});
}
}
을 나는 점점 오전 :
이Subscriber.ts:241 Uncaught TypeError: Cannot read property 'loginFb' of undefined(…)
누군가가이 문제를 좀 도와 줄래? 감사!
당신을 감사 화살표 기능을
statusChangeCallback
statusChangeCallback
에 적절한 컨텍스트에
this
를 결합하거나 할 필요가! –