angular - 需要在函数中访问服务

标签 angular restangular angular2-services

我有一个服务 (AuthService),我需要在我的 restangularInit 函数(在我的 app.module.ts 中)中访问,但我不知道如何访问,我无法访问

我曾尝试将其移至 AppModule 类,但到那时为时已晚。

调用服务功能,例如。 getToken 按预期工作。

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";
import { RestangularModule } from 'ng2-restangular';

// Components
import { AppComponent } from './app.component';
import { ProductComponent } from './components/product/product.component';

// Services
import { AuthService } from './services/auth.service';

export function restangularInit(RestangularProvider, AuthService) {
  console.log(AuthService); // this is undefined
  let token = AuthService.getToken(); //This is what I want to do
  RestangularProvider.setBaseUrl('api');
  RestangularProvider.setDefaultHeaders(
    {'Authorization': 'Bearer ' + token},
  );
}

@NgModule({
  declarations: [
    AppComponent,
    ProductComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    MaterialModule,
    FlexLayoutModule,
    RestangularModule.forRoot(restangularInit)
  ],
  providers: [
    AuthService
  ],
  entryComponents: [ProductComponent],
  bootstrap: [AppComponent]
})
export class AppModule { }

最佳答案

创建一个静态方法 getToken() 然后您可以像在代码中那样访问它。

let token = AuthService.getToken(); //This is what I want to do

关于angular - 需要在函数中访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42596824/

相关文章:

html - Angular-是否可以在子组件中使用内容投影?

javascript - 根据输入启用按钮 - Angular/Typescript

angular - 如何从组件添加[routerLink]?

angular - 分页在 api 系统中是如何工作的(前端是 Angular 2,后端是 laravel 5.4)?

angular - 错误 : Uncaught (in promise): Response with status: 404 Not Found for URL when upgrading to Angular-CLI + Angular 4

angular - 组件交互 Angular 2

javascript - 工厂内的 Restangular 嵌套 Rest 资源

javascript - 无法在 Restangular 配置函数中传递依赖项 (AngularJs)

angularjs - 无法在 Go 中获取 Angular/Restangular 表单数据

angular - Angular2 是否有相当于 $sceDelegateProvider.resourceUrlWhitelist 和 $sceDelegateProvider.resourceUrlBlacklist 的东西?