老师,帮我看看这个问题吧

来源:7-13 实战个人信息

会游泳的兔子先森

2020-08-02

  1. 我在main.ts中引入rem.js,以下是我的rem.js代码
    图片描述
    2.然后home.ts是我的首页,代码如下图片描述
    我是想在home页面中 获得当前rem的大小,可是打印结果如下 (为什么先执行home.ts的代码呢,我懵逼了)
    图片描述
写回答

1回答

接灰的电子产品

2020-08-02

在 main.ts 中引入并不代表一定会先起作用,你的 js 装载应该已经 ready,但是事件触发没有打到条件时,angular 本身的引导已经执行完了,所以你会有上面的结果,建议使用 APP_INITIALIZER 来进行初始化的一些操作

import { NgModule, APP_INITIALIZER } from '@angular/core'; 
import { AppConfigService } from './services/app-config.service'; 
export function appInit(appConfigService: AppConfigService) {   
    return () => appConfigService.load();
}
 @NgModule({   
     //...   
     providers: [AppConfigService,     {       
         provide: APP_INITIALIZER,       
         useFactory: appInit,       
         multi: true,       
         deps: [AppConfigService]     
     }],   
     bootstrap: [AppComponent] }) 
export class AppModule { }


1
1
会游泳的兔子先森
老师,我在ngOnInit中加了一个setTimeout, 1ms 后再打印,就可以打印出来,老师,你上面发给我的代码我看不懂,AppConfigService你是本地导入的,我不知道是什么意思,可以顺便把代码贴出来吗。
2020-08-19
共1条回复

Angular 开发拼多多webapp 从基础到项目实战

高仿拼多多WebApp,带你在实战环境中学习Angular

1322 学习 · 451 问题

查看课程