如何使用angular2从另一个模块导入服务?

时间:2017-02-17 06:40:27

标签: angular

我正在尝试将用户从我的LoginService转到配置文件模块。我的个人资料模块有3个组件。 Loginservice位于AppModule内的另一个组件中。 这是在login.service.ts中获取用户的方法:

getCurrentUser() {
    return this._storage.get<User>(this.USER_KEY);
  }// End getCurrentUser ()

这是我的app.module.ts:

import { SharedModule } from './shared/SharedModule';
import 'hammerjs';

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { MaterialModule } from '@angular/material';
import { FlexLayoutModule } from "@angular/flex-layout/flexbox";

import { LocalStorageModule } from 'angular-2-local-storage';
import { AppComponent } from './app.component';
import { LoginComponent } from './modules/login/login.component';
import { Angular2RoutingModule } from './app.routing';
import { KeysPipe } from './pipes/keys.pipe';
import { AdminComponent } from './modules/admin/admin.component';
import { AdminHomeComponent } from './modules/admin/admin-home/admin-home.component';
import { ProfileComponent } from './modules/profile/profile.component';

@NgModule({
  declarations: [
    AppComponent,
    LoginComponent,
    ],
  imports: [
    SharedModule,
    BrowserModule,
    FormsModule,
    HttpModule,
    Angular2RoutingModule,
    MaterialModule.forRoot(),
    FlexLayoutModule,
    LocalStorageModule.withConfig({
      prefix: 'rsm',
      storageType: 'localStorage'
    })
  ],
  providers: [],
  bootstrap: [AppComponent],
  exports: []
})
export class AppModule { }

这是我的个人资料.module.ts:

import { MaterialModule } from '@angular/material';
import { profileRouting } from './profile.routing';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { ProfileComponent } from './profile.component';
import { ProfileHomeComponent } from './profile-home/profile-home.component';
import { ProfileSecurityComponent } from './profile-security/profile-security.component';
import { ProfileSettingsComponent} from './profile-settings/profile-settings.component';
import { FlexLayoutModule} from '@angular/flex-layout/flexbox';

@NgModule({
    declarations: [
        ProfileComponent,
        ProfileHomeComponent,
        ProfileSecurityComponent,
        ProfileSettingsComponent, 
    ],

    imports: [profileRouting, CommonModule, MaterialModule.forRoot(),FlexLayoutModule],
    providers: [],
})
export class ProfileModule {

}

我如何在profilemodule中的组件内的loginservice中使用该方法?

1 个答案:

答案 0 :(得分:1)

首先将登录与应用程序模块分开。创建登录模块。

现在,因为你想使用完全不同模块的东西。您需要导入该模块。

所以,你应该

  • 在配置文件模块中导入登录模块
  • 导航配置文件组件中的登录服务

那应该这样做。

就像导入HttpModule然后在使用它们之前导入Http服务一样。