2017-01-26 2 views
0

Начиная экспериментировать с Angular2. Ошибка в этом блоке, при вызове this.auth.isLoggedIn(). Я получаю ошибку Property 'isLoggedIn' does not exist on type 'AuthService'.. Почему вызов функции интерпретируется как доступ к свойствам?Функция неправильно интерпретируется как свойство в Angular2?

import { Injectable } from '@angular/core'; 
import { Router } from '@angular/router'; 
import { CanActivate } from '@angular/router'; 

import { AuthService } from './auth.service'; 

export class AuthGuard implements CanActivate { 

    constructor(private auth: AuthService, private router: Router) {} 

    canActivate() { 
    if(!this.auth.isLoggedIn()) { 
     this.router.navigate['']; 
     return false; 
    } 
    } 
} 

Вот сервис впрыскивается:

import { Injectable } from '@angular/core'; 
import { Router } from '@angular/router'; 

@Injectable() 
export class AuthService { 
    private loggedIn:boolean = false; 

    constructor(private router: Router) { 
    this.loggedIn = !!localStorage.getItem('auth_token'); 
    } 

    login(email:string, password:string):void { 
    localStorage.setItem('auth_token', 'x'); 
    this.loggedIn = true; 
    } 

    logout():void { 
    localStorage.removeItem('auth_token'); 
    this.loggedIn = false; 
    } 

    isLoggedin():boolean { 
    return this.loggedIn; 
    } 
} 
+2

isLoggedin() (имя метода) <> isLoggedIn(). –

ответ

3

Пожалуйста, измените метод подписи вашего сервиса от isLoggedin() : boolean к isLoggedIn() : boolean.

+0

Crap. Мне стыдно это видеть. :) – alphadogg

+0

Нет, я смущаю себя религиозно. –

Смежные вопросы