我正在尝试在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的最新版本
答案 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');
}
}