提供AngularJS 2

时间:2016-10-10 19:38:25

标签: angular

我正在尝试在bootsrap中使用提供但不能正常工作,这是我的代码:

import { NgModule, provide }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }   from './app.component';
import { HomeComponent } from './home/home.component';
import {AboutComponent} from './about/about.component';
import {LoginComponent} from './account/login/login.component';
import { FormsModule }    from '@angular/forms';
import { HttpModule,BaseRequestOptions } from '@angular/http';
import { AuthenticationService} from './account/login/login.service';
import appRoutes from './app.router';

/**
 * Extending BaseRequestOptions to inject common headers to all requests.
 */
class CustomRequestOptions extends BaseRequestOptions {
    constructor() {
        super();
        this.headers.append('Authorization', 'my-token');
        this.headers.append('foo', 'bar');
    }
}

@NgModule({
  imports: [BrowserModule, appRoutes, FormsModule,
    HttpModule],
  declarations: [AppComponent, HomeComponent, AboutComponent, LoginComponent],
  bootstrap: [AppComponent,
  provide({useClass: CustomRequestOptions}) ],
  providers: [
    AuthenticationService
  ]

})

export class AppModule { }

我提供的错误提供未定义。任何人都知道什么是问题以及如何解决它?我使用的是AngularJS 2的最新版本

1 个答案:

答案 0 :(得分:1)

在NgModule上没有任何属性可以简单地将调用结果传递给provide,您需要 providers: [ AuthenticationService, { provide: CustomRequestOptions, useClass: CustomRequestOptions } ] 作为提供者数组的一部分,如此...

//Login
public function login() {
    if($this->request->is('post')) {
        $user = $this->Auth->identify();
        if($user) {
            $this->Auth->setUser($user);
            return $this->redirect(['controller' => 'tasks']);
        }
        //Bad Login
        $this->Flash->error('Incorrect Login or Password');
    }
}