从@ngModule调用服务

时间:2016-10-24 09:52:09

标签: angular module

我想从登录组件调用在@ngModule中导入的服务。 这就是我所做的,但它不起作用。 我刚刚开始研究A2最终版本。

export class Login implements OnInit{
  constructor(
    private _service: Service
    ) {
  }
  ngOnInit() {
    this._service.login(value)
        .subscribe(x => console.log(x));
    }
  }
}

我的@ngModule

import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { LoginService } from '../service/login.service'; 

import { Login } from './login.component';

export const routes = [
  { path: '', component: Login, pathMatch: 'full' }
];

@NgModule({
  declarations: [
    Login
  ],
  imports: [
    CommonModule,
    RouterModule.forChild(routes)
  ],
  providers: [LoginService]
})
export default class LoginModule {
  static routes = routes;
}

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

内部构造函数Service应为LoginService,因为您要访问/创建LoginService的实例。还要确保已导入LoginService

constructor(
   private _service: LoginService //<-- changed dependency type name
   ) {
}

答案 1 :(得分:1)

将您的组件类变为使用LoginService

export class Login implements OnInit{
  constructor(
    private _service: LoginService
    ) {
  }
  ngOnInit() {
    this._service.login(value)
        .subscribe(x => console.log(x));
    }
  }
}

答案 2 :(得分:0)

您还必须在Login组件中导入LoginService并将其添加到构造函数中:

constructor( _service: LoginService) {  }