重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下在Angular中APP_INITIALIZER的作用是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创新互联专业为企业提供通化县网站建设、通化县做网站、通化县网站设计、通化县网站制作等企业网站建设、网页设计与制作、通化县企业网站模板建站服务,十余年通化县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。在 Angular 中 APP_INITIALIZER 的作用是什么?
在官方文档是这样描述的:APP_INITIALIZER 是一个函数,在应用程序初始化时被调用。这就意味着可以通过 AppModule 类的 providers 以 factory 的形式配置它来使用,同时应用程序将会等待它加载完成后进行下一步,所以在这此只适合加载简单的数据。
示例
创建新项目
ng new example --skip-install npm install # yarn install
配置 Provider
首先创建一个 provider ,它会在请求解析完成后返回一个 Promise 对象
@Injectable() export class JokesProvider { private joke:JokeModel = null; constructor(private http:Http){ } public getJoke(): JokeModel { return this.joke; } load() { return new Promise((resolve,reject) => { this.http.get(url) .map(r=>r.json()) .subscribe(r=> { this.joke = r['value']; resolve(true); }) }) } }
这里会经过三个过程:
getJoke() 方法在其他组件或模块调用时直接返回 joke 当前保存的数据
私有属性 joke 会保存当前请求的数据
load() 函数会在应用程序初始时立即调用
创建Provider 工厂
export function jokesProviderFactory(provider: JokesProvider){ return () => provider.load(); }
注册 JokesProvider 和 APP_INITIALIZER
@NgModule({ declarations:[ AppComponent ], imports:[ BrowserModule,// required HttpModule// required ], providers: [ JokesProvider, { provide:APP_INITIALIZER,useFactory: jokesProviderFactory, deps:[JoesProvider], multi:true } ], bootstrap:[AppComponent] }) export class AppModule { }
应用
以上是在Angular中APP_INITIALIZER的作用是什么的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!