栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

带有外部json配置文件的Angular2异步引导

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

带有外部json配置文件的Angular2异步引导

我有同样的问题。好像您遇到了我的要点
:-)

至于RC6更新,您应该签出HttpModule源。它显示了最初已被删除的所有提供程序

HTTP_PROVIDERS
。我刚刚检查了一下,并提出了以下建议

function getHttp(): Http {  let providers = [    {      provide: Http, useFactory: (backend: XHRBackend, options: RequestOptions) => {        return new Http(backend, options);      },      deps: [XHRBackend, RequestOptions]    },    BrowserXhr,    { provide: RequestOptions, useClass: baseRequestOptions },    { provide: ResponseOptions, useClass: baseResponseOptions },    XHRBackend,    { provide: XSRFStrategy, usevalue: new NoopcookieXSRFStrategy() },  ];  return ReflectiveInjector.resolveAndCreate(providers).get(Http);}

至于

platform.bootstrapModule(AppModule);

它不是最漂亮的(实际上还不错),但是从[ 这篇文章中]
我发现了一个我什至不知道的可能。看起来您可以在函数 内部 声明模块。

function getAppModule(conf) {  @NgModule({    declarations: [ AppComponent ],    imports:      [ BrowserModule ],    bootstrap:    [ AppComponent ],    providers:    [      { provide: Configuration, usevalue: conf }    ]  })  class AppModule {  }  return AppModule;}

下面是我现在用来测试的内容

import { ReflectiveInjector, Injectable, OpaqueToken, Injector } from '@angular/core';import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';import { BrowserModule } from '@angular/platform-browser';import { NgModule } from '@angular/core';import { Observable } from 'rxjs/Observable';import 'rxjs/add/operator/toPromise';import {  Http, cookieXSRFStrategy, XSRFStrategy, RequestOptions, baseRequestOptions,  ResponseOptions, baseResponseOptions, XHRBackend, BrowserXhr, Response} from '@angular/http';import { AppComponent } from './app.component';import { Configuration } from './configuration';class NoopcookieXSRFStrategy extends cookieXSRFStrategy {  configureRequest(request) {    // noop  }}function getHttp(): Http {  let providers = [    {      provide: Http, useFactory: (backend: XHRBackend, options: RequestOptions) => {        return new Http(backend, options);      },      deps: [XHRBackend, RequestOptions]    },    BrowserXhr,    { provide: RequestOptions, useClass: baseRequestOptions },    { provide: ResponseOptions, useClass: baseResponseOptions },    XHRBackend,    { provide: XSRFStrategy, usevalue: new NoopcookieXSRFStrategy() },  ];  return ReflectiveInjector.resolveAndCreate(providers).get(Http);}function getAppModule(conf) {  @NgModule({    declarations: [ AppComponent ],    imports:      [ BrowserModule ],    bootstrap:    [ AppComponent ],    providers:    [      { provide: Configuration, usevalue: conf }    ]  })  class AppModule {  }  return AppModule;}getHttp().get('/app/config.json').toPromise()  .then((res: Response) => {    let conf = res.json();    platformBrowserDynamic().bootstrapModule(getAppModule(conf));  })  .catch(error => { console.error(error) });


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号