Импортировать ленивый компонент в меню sidenav - PullRequest
0 голосов
/ 07 ноября 2018

Мое приложение использует отложенную загрузку, но у меня загружены компоненты в app.module, потому что они мне все равно нужны по умолчанию, но большинство из них загружаются на разных страницах / компонентах.

Это side-menu.html:

<ion-content>
  <ion-list>
    <ion-item>
      <login></login>
    </ion-item>
    <ion-item>
      <language-change></language-change>
    </ion-item>
  </ion-list>
</ion-content>

login загружается по умолчанию, потому что пользователь должен будет всегда входить в систему, поэтому этот компонент работает в боковом меню.

language-change загружается только тогда, когда мне это нужно, и работает на других страницах, но не здесь. Это side-menu.module:

import { NgModule } from "@angular/core";
import { IonicPageModule } from "ionic-angular";
import { SideMenuPage } from "./side-menu";
import { LanguageChangeComponentModule } from "../../components/language-change/language-change.module";

@NgModule({
    declarations: [SideMenuPage],
    imports: [
        IonicPageModule.forChild(SideMenuPage),
        LanguageChangeComponentModule
    ],
    exports: [SideMenuPage],
    entryComponents: [SideMenuPage]
})
export class SideMenuPageModule { }

language-change.module

import { NgModule } from '@angular/core';
import { IonicModule } from 'ionic-angular';
import { LanguageChangeComponent } from './language-change';

@NgModule({
    declarations: [LanguageChangeComponent],
    imports: [
        IonicModule
    ],
    exports: [LanguageChangeComponent],
    entryComponents: [LanguageChangeComponent]
})
export class LanguageChangeComponentModule { }

side-menu.module

import { NgModule } from "@angular/core";
import { IonicPageModule } from "ionic-angular";
import { SideMenuPage } from "./side-menu";
import { LanguageChangeComponentModule } from "../../components/language-change/language-change.module";

@NgModule({
    declarations: [SideMenuPage],
    imports: [
        IonicPageModule.forChild(SideMenuPage),
        LanguageChangeComponentModule
    ],
    exports: [SideMenuPage],
    entryComponents: [SideMenuPage]
})
export class SideMenuPageModule { }

У меня классика

'language-change' не известен элемент

1 Ответ

0 голосов
/ 07 ноября 2018

Предполагается, что у вас есть language-change имя компонента LanguageChangeComponent.

Проверьте, если вы декларируете и экспортируете LanguageChangeComponent из LanguageChangeComponentModule.

@NgModule({
   //....
   declarations : [LanguageChangeComponent],
   exports :  [LanguageChangeComponent]
   //...
 })
class LanguageChangeComponentModule{

}

Если вы хотите использовать этот компонент во всем приложении, вы можете import и export LanguageChangeComponentModule в AppModule.

@NgModule({
    imports: [
        LanguageChangeComponentModule
    ],
    exports: [LanguageChangeComponentModule]
})
export class AppModule {}

Если вы хотите использовать его в определенном модуле, вы можете импортировать его в этот модуль вместо AppModule.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...