Я нашел сценарий, который задерживает запуск моего модуля в Angular 2. Я не опытный парень в Angular. Это мой первый проект. Итак, не знал, как бороться с этим сценарием:
Я создал небольшое приложение, в котором есть различные модули. Каждый модуль имеет 2-3 подкомпонента. Но мой модуль SignUp и модуль MyAccount представляют собой смесь различных компонентов.
Ниже приведена иерархия моего приложения.
приложение
--Внешний интерфейс
----videos
------Detail
--------videodetail.component.html
--------videodetail.component.ts
------List
- ------List.component.html
- ------List.component.ts
- ----videos.component.html
- ----videos.component.ts
- ----videos.routing.ts
- ----videos.module.ts
----article
- ----article.component.html
- ----article.component.ts
---- передние-end.routing.ts
---- передние-end.module.ts
---- передние-end.component.ts
---- передний end.component.html
--signup
----stepone
- ----stepone.component.html
- ----stepone.component.ts
----steptwo
- ----steptwo.component.html
- ----steptwo.component.ts
----stepthree
- ----stepthree.component.html
- ----stepthree.component.ts
----stepfour
- ----stepfour.component.html
- ----stepfour.component.ts
----final
- ----final.component.html
- ----final.component.ts
----OneMore
- ----OneMore.component.html
- ----OneMore.component.ts
- --signup.module.ts
- --signup.component.ts
- --signup.routing.ts
- --signup.component.html app.module.ts app.component.ts app.component.html app.routing.ts
Ниже приведен код маршрутизации signup-routing.module.ts
для детей.
const routes: Routes = [
{ path: '', component: SignupComponent },
{ path: 'terms', component: TermsComponent },
{ path: 'first', component: StepOneComponent },
{ path: 'second', component: SteptwoComponent },
{ path: 'third', component: StepthreeComponent },
{ path: 'third/:status', component: StepthreeComponent },
{ path: 'third/:status/:type', component: StepthreeComponent },
{ path: 'success', component: FinalComponent }
В соответствии с запросом ниже приведен конструктор SingupComponent
и BaseComponent
.
export class BaseComponent implements OnInit {
public SiteConfigurations: SiteConfigurations;
public options: any
constructor() {
this.SiteConfigurations = new SiteConfigurations();
var currentClass= this;
window["SetDefaultImage"] = function(){}
window["SetDefaultImage"]=function (event){
currentClass.SetDefaultImageWithCurrentClass(event,currentClass);
};
}
ngOnInit() {
// this.options = Baser
}
SetDefaultImageWithCurrentClass(event,currentClass) {
event.target.src = currentClass.SiteConfigurations.EnvironmentConfigurations.siteURL+"assets/images/no-image.png";
}
SetDefaultImage(event) {
this.SetDefaultImageWithCurrentClass(event,this);
}
}
export class SignupComponent extends BaseComponent implements OnInit, OnDestroy {
constructor(router: Router, accountService: AccountService) {
super();
this.accountService = accountService;
this.router = router; }
ngOnInit(): void {
this.packageType = this.getStepData("packageType");
this.stepone = this.getStepData("stepone");
this.steptwo = this.getStepData("steptwo");
this.options = this.accountService.notificationService.options;
this.clear = true;
}
}
Ниже приведен мой код app-routing.module.ts
.
const routes: Routes = [
{
path: '', component: FrontEndComponent,
children: [
{ path: 'home', loadChildren: './home/home.module#HomeModule' },
{ path: 'videos', loadChildren: './videos/videos.module#VideosModule' },
{ path: 'myaccount', loadChildren: './users/users.module#UsersModule', canActivate: [AuthGuard] },
{ path: 'signup', loadChildren: '../signup/signup.module#SignupModule' }]
}
];
Когда я запускаю свое приложение и домашняя страница загружается, когда я нажимаю на SignUp в первый раз, требуется некоторое время для выполнения конструктора signup.component.ts. Причина, по которой я обнаружил, состоит в том, что в модуле регистрации есть различные подкомпоненты, которые загружаются когда модуль регистрации вызывается в первый раз (т.е. когда генерируется файл чанка). Та же проблема с модулем AccountModule, где для отображения данных на панели пользователя учетной записи пользователя используется от 8 до 10 субкомпонентов.
Он удерживается в течение 2-3 секунд перед вызовом конструктора компонента SignUp и метода onInit, а затем переходит на сторону сервера для получения данных из базы данных. В то время как другие модули, такие как видео, статьи и другие, имеют только 2 и максимум 3 подкомпонента, и они выполняются немедленно.