これは私のAuthServiceです。どのようにしてこのすべてのコンポーネントでこの認証サービスを使用できますか?私はこのスクリプトを実行すると以下のエラーが表示されます - プロパティ 'userLoggedIn'がタイプ 'AuthService'に存在しません。どのように私はangular2の依存性注入を使用することができます
import { Component, Input, Inject, ReflectiveInjector, Injectable} from '@angular/core';
@Injectable()
export class AuthService {
static userLoggedIn : boolean = false;
//call this function when login status changes
static changeLoginStatus(status: boolean){
this.userLoggedIn = status;
}
}
コンポーネントファイル -
import { Component, OnInit, Inject, ReflectiveInjector } from '@angular/core';
import { FormGroup, FormBuilder, Validators, AbstractControl, FormControl } from '@angular/forms';
import { Http, Response, RequestOptions, Headers } from '@angular/http';
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/map';
//import './rxjs-operators';
import { CustomValidators } from '../common/validations.ts';
import { AuthService } from '../injectables/authservice.ts';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
loginForm : FormGroup;
data : any;
//http : Http;
constructor(private http: Http, fb: FormBuilder) {
this.loginForm = fb.group({
'email':[null, Validators.compose([Validators.required,CustomValidators.emailFormat])],
'password':[null, Validators.compose([Validators.required])],
});
}
ngOnInit() {
}
submitLoginForm(value: any){
console.log(value);
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let body = JSON.stringify(value);
this.http.post(
'http://192.168.1.90/articles/data/post/',
body)
.subscribe((res: Response) => {
this.data = JSON.stringify(res);
console.log('---->'+res.json().data.email);
localStorage.setItem('email', res.json().data.email);
localStorage.setItem('userID', res.json().data.id);
localStorage.setItem('name', res.json().data.name);
localStorage.setItem('loginStatus', 'true');
//this.loginStatus = true;
//aService: AuthService;
AuthService.changeLoginStatus(true);
console.log('localstorege item ---->'+localStorage.getItem('email'));
});
return false;
}
}
https://angular.io:
AuthService
を使用するすべてのコンポーネントは、そのconstructor
パラメータ、例えばまた、あなたがたとえば、あなたの
NgModule
プロバイダでAuthService
を使用していることを確認して、それを持っている必要があります/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-serviceはうまく説明しています。 質問には、達成しようとするもの、試したもの、失敗した場所を示すコードが含まれている必要があります。 –check https://angular.io/docs/ts/latest/cookbook/dependency-injection.html – ranakrunal9
コードスニペットを追加しました。あなたは私に示唆してもらえますか? –