"找不到组件工厂"错误尝试从一个页面推送到另一个页面时

Sad*_*ami 23 ionic2 angular

尝试从一个页面推送到另一个页面时出错.当我尝试推送到同一页面时,它不会给出错误.只有从一个页面推送到另一个页面时才会出错.'setRoot()'也没有给出错误.

this.navCtrl.push( Page7 );
Run Code Online (Sandbox Code Playgroud)

我已将Page7添加到app.module.ts.

import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import { MyApp } from './app.component';

import { Page1 } from '../pages/page1/page1';
import { Page2 } from '../pages/page2/page2';
import { Page3 } from '../pages/page3/page3';
import { Page4 } from '../pages/page4/page4';
import { Page5 } from '../pages/page5/page5';
import { Page6 } from '../pages/page6/page6';
import { Page7 } from '../pages/page7/page7';

@NgModule({
declarations: [
MyApp,
Page1,
Page2,
Page3,
Page4,
Page5,
Page6,
Page7
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
Page1,
Page2,
Page3,
Page4,
Page5,
Page6,
Page7
],
providers: []
})

export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

这是一个离子2应用程序.它给出了这个错误.

EXCEPTION: Error in ./Page6 class Page6 - inline template:21:56 caused by: No component factory found for Page7
Run Code Online (Sandbox Code Playgroud)

控制台错误

Sad*_*ami 34

我找到了解决方案.您必须将要尝试推送的页面添加到父目录.那也应该包含在@NgModule中.

import {ApiServices} from '../../providers/api-services';
import { Visualizer } from '../Page7/Page7';

@Component({
  selector: 'page-page6',
  templateUrl: 'page6.html',
  providers: [ ApiServices ],
  entryComponents:[ Page7 ]
})

export class Page6 {
    tapped(event, id ) {
      this.navCtrl.push( Page7,{
       id: id
      });
    }
}      
Run Code Online (Sandbox Code Playgroud)


小智 18

你已经把你的组件在exports[]@NgModule?还是entryComponents

@NgModule({
    imports: [
        MaterialModule.forRoot(),
    ],
    exports: [
        ConfirmDialog,
    ],
    declarations: [
        ConfirmDialog,
    ],
    providers: [
        DialogsService,
    ],
    entryComponents: [
        ConfirmDialog,
    ],
Run Code Online (Sandbox Code Playgroud)


Deb*_*Deb 5

你可以做这样的事情。

使用以下内容导入或创建home.module.ts后,

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home';

@NgModule({
  declarations: [
    HomePage,
  ],
  imports: [
    IonicPageModule.forChild(HomePage),
  ],
})
export class HomePageModule {}
Run Code Online (Sandbox Code Playgroud)

删除所有导入页面链接。例如,

import { HomePage } from '../pages/home/home';
Run Code Online (Sandbox Code Playgroud)

然后,替换页面链接,例如,

根页面:任意 = 主页;rootPage: any = 'HomePage';

或者,

this.navCtrl.push(HomePage); this.navCtrl.push('HomePage');

即在单引号或双引号内写入类名。