2017-10-16 35 views
2

使用@ngrx/effects v4.0.5和Angular v4.4.4。ngrx EffectsModule使得Http服务未定义

当我在app.module.ts中导入EffectsModule时,Http服务变得未定义。

一些代码:

// app.module.ts 
import { BrowserModule, Title } from '@angular/platform-browser'; 
... 
import { HttpModule, Http } from '@angular/http'; 
... 
import { EffectsModule } from '@ngrx/effects'; 
import { AuthenticationModule } from './authentication/authentication.module'; 
import { MyEffects } from './myEffects.ts' 
... 

@NgModule({ 
    declarations: [ 
    AppComponent 
    ], 
    imports: [ 
    BrowserModule, 
    HttpModule, 
    ... 
    AuthenticationModule, 
    StoreModule.forRoot(reducers), 
    EffectsModule.forRoot([MyEffects]) 
    ] 
    ... 
}) 
export class AppModule { } 

请注意:MyEffects不以任何方式认证功能有关。

当我使用我可以在我的应用程序中使用的第一件事,登录按钮,我叫AuthenticationService.signIn,进而调用它的HTTP实例this.http.post(...

而且this.http是不确定的(有一个错误信息,看着它通过调试,并发现它未定义 - this不是不确定的,具有http属性,该属性未定义)

如果我注释掉EffectsModule.forRoot([MyEffects]),HTTP服务“再次出现”,并在作品中的标志。

请注意,MyEffects与身份验证功能没有任何关系。

回答

0

升级@angular/包从4.4.44.4.5解决了这个问题O_O”