2016-04-26 122 views
0

每當我添加構造函數(private http:Http)到代碼,它會給出錯誤。任何想法?意外的令牌私人

events.js:154 
     throw er; // Unhandled 'error' event 
    ^
MultipleErrors: app/services/loginService:7:15: Unexpected token private 
app/services/loginService:7:23: Unexpected token http 
app/services/loginService:7:27: Unexpected token : 
app/services/loginService:7:29: Semi-colon expected 
app/services/loginService:7:33: Semi-colon expected 
app/services/loginService:7:33: Unexpected token) 
app/services/loginService:7:35: Semi-colon expected 
app/services/loginService:26:16: Semi-colon expected 
app/services/loginService:32:17: Semi-colon expected 
app/services/loginService:36:1: Unexpected token End of File 

loginService.ts

import {Injectable} from 'angular2/core'; 
import {Http, Headers, Response} from 'angular2/http'; 
import {Observable}  from 'rxjs/Observable'; 

@Injectable() 
export class LoginService { 
constructor (private http: Http) {} 
    //tet 
    /* 
    login(path:string, username:string, password:string) { 
    var creds = "username=" + username + "&password=" + password; 
    var headers = new Headers(); 
    headers.append('Content-Type', 'application/x-www-form-urlencoded'); 
    this.http.post('http://localhost:3001/sessions/create', creds, { 
     headers: headers 
     }) 
     .map(res => res.json()) 
     .subscribe(
     data => this.saveToLocal(data), 
     err => this.logError(err), 
     () => console.log('Authentication Complete') 
    ); 

    return this.http.get(path); 
    }*/ 
    saveToLocal(jwt) { 
    if (jwt) { 
     localStorage.setItem('id_token', jwt) 
    } 
    } 

    logError(err) { 
    console.error('There was an error: ' + err); 
    } 
} 

回答

0

也許你使用ES6代替打字稿。 ES6不支持這個(私有/公共和類型的可見性),並會拋出這樣的錯誤。

隨着ES6,你只能使用此:

@Injectable() 
export class LoginService { 
    constructor (http) {} 

    (...) 
} 

而且依賴注入,與ES6,您需要添加靜態getter是否parameters屬性:

@Injectable() 
export class LoginService { 
    constructor (http) {} 

    (...) 

    static getter parameters() { 
    return [[Http]]; 
    } 
} 
+0

感謝您的幫助但是,Thierry的代碼不適合我的情況,ES6。我想getter是用於ES7的?我最終會這樣做,導出類LoginService {0} {0}}}}}}}}}}}}} get get parameters(){ return [[Http]]; } http:Http; 構造函數(http){ this.http = http; console.log('http',http); } – Hammer

+0

是的,你不支持ES6中的'private' ;-)如果你使用Ionic2,你可以在生成項目時使用-ts選項來使用TypeScript ... –

+0

不幸的是,我不是使用Ionic2。如果我想使用ts,是否必須重新使用gulp + ts從種子中重新創建項目? – Hammer