有没有办法将后端呈现的参数传递给angular2 bootstrap方法?我想为使用BaseRequestOptions的所有请求设置http标头,并使用后端提供的值.我的main.ts文件看起来像这样:
import { bootstrap } from '@angular/platform-browser-dynamic';
import { AppComponent } from "./app.component.ts";
bootstrap(AppComponent);
Run Code Online (Sandbox Code Playgroud)
我发现如何将这个参数传递给root组件(/sf/answers/2488755531/),但是当我开火bootstrap方法时我需要它......有什么想法吗?
编辑:
webpack.config.js内容:
module.exports = {
entry: {
app: "./Scripts/app/main.ts"
},
output: {
filename: "./Scripts/build/[name].js"
},
resolve: {
extensions: ["", ".ts", ".js"]
},
module: {
loaders: [
{
test: /\.ts$/,
loader: 'ts-loader'
}
]
}
};
Run Code Online (Sandbox Code Playgroud) 我正在使用APP_INITIALIZER,就像在这个答案中推荐的那样,我的服务返回一个承诺,但它并不总是等待它解决,我可以看到我的组件console.logging未定义,然后服务记录下载的对象.
我需要应用程序在加载此数据之前不做任何事情.
app.module.ts
import { NgModule, APP_INITIALIZER } from '@angular/core';
import { Http, HttpModule, JsonpModule } from '@angular/http';
import { UserService } from '../services/user.service';
<...>
@NgModule({
imports: [
BrowserModule,
HttpModule,
FormsModule,
JsonpModule,
routing
],
declarations: [
AppComponent,
<...>
],
providers: [
<...>
UserService,
{provide: APP_INITIALIZER,
useFactory: (userServ: UserService) => () => userServ.getUser(),
deps: [UserService, Http],
multi: true
}
],
bootstrap: [AppComponent]
Run Code Online (Sandbox Code Playgroud)
user.service.ts
@Injectable()
export class UserService {
public user: User;
constructor(private http: Http) { }
getUser(): Promise<User> { …Run Code Online (Sandbox Code Playgroud)