2017-01-21 16 views
2

我是Angular2的新手,試圖運行這個tutorial。它使用fakeBackendProvide來模擬使用MockBackend的後端調用。Angular 2:遇到從MockBackend靜態解析符號值的錯誤

邏輯的fackBackend是這樣的: export let fakeBackendProvider = {}

index.ts類有助於出口fackBackendProvider有一行: export * from './fake-backend';

app.module.ts看起來是這樣的:

providers: [ 
    AuthGuard, 
    AuthenticationService, 
    UserService, 

    //fake backend providers 
    fakeBackendProvider, 
    MockBackend, 
    BaseRequestOptions 
    ], 

我得到這個錯誤消息: ERROR in Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 7:15 in the original .ts file), resolving symbol fakeBackendProvider in /Users/hyadav/Documents/hp-app/src/app/helpers/fake-backend.ts, resolving symbol fakeBackendProvider in /Users/hyadav/Documents/hp-app/src/app/helpers/index.ts, resolving symbol AppModule in /Users/hyadav/Documents/hp-app/src/app/app.module.ts, resolving symbol AppModule in /Users/hyadav/Documents/hp-app/src/app/app.module.ts

不知道怎麼回事。

代碼的休息,可以在這裏找到:Github

+0

https://github.com/angular/angular/issues/11262 – yurzui

回答

6

我有同樣的問題,用相同的教程。我所做的只是從lambda表達式創建一個新函數,然後在fakeBackendProvider中的useFactory中調用它。

export function mockBackEndFactory(backend: MockBackend, options: BaseRequestOptions, realBackend: XHRBackend) { ... } 

export let fakeBackendProvider = { 
    provide: Http, 
    deps: [MockBackend, BaseRequestOptions, XHRBackend], 
    useFactory: mockBackEndFactory 
}; 

這裏的鏈接,假backend.ts文件我修改:https://github.com/cealmees/Angular2-training/blob/master/src/app/entities/login/helpers/fake-backend.ts

+0

謝謝您的回答。它可以幫助我解決同樣的問題。讓我知道爲什麼你的方式是正確的,教程方式是錯誤的? ^^ – WorkWe

+0

教程的方式沒有錯。主要問題是Angular 2版(這是RC4)。教程代碼是用舊版本編寫的,當我試圖通過最新版本的Angular Cli(Angular 2 RC5)編譯它時,我遇到了錯誤。我只是更新了那部分代碼,並且做到了這一點。 :) –

+0

得到你,謝謝 – WorkWe

相關問題