Angular &引用;未找到“的组件工厂”;尝试从一页推送到另一页时出错
我在尝试从一页推到另一页时出错。当我尝试推到同一页时,它不会给出那个错误。只有我在从一页推到另一页时出错。”setRoot()'也没有给出错误Angular &引用;未找到“的组件工厂”;尝试从一页推送到另一页时出错,angular,ionic2,Angular,Ionic2,我在尝试从一页推到另一页时出错。当我尝试推到同一页时,它不会给出那个错误。只有我在从一页推到另一页时出错。”setRoot()'也没有给出错误 this.navCtrl.push( Page7 ); 我已将第7页添加到app.module.ts import { NgModule } from '@angular/core'; import { IonicApp, IonicModule } from 'ionic-angular'; import { MyApp } from './app.
this.navCtrl.push( Page7 );
我已将第7页添加到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 {}
这是离子2应用。它给出了这个错误
EXCEPTION: Error in ./Page6 class Page6 - inline template:21:56 caused by: No component factory found for Page7
我找到了解决办法。您必须将要推送的页面添加到父目录中。这也应该包括在@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
});
}
}
我认为导入时,错误可能是路径中的大写字母,这对我来说很有用 您是否已将组件放入其
@NgModule
中的导出[]
?或entryComponents
@NgModule({
imports: [
MaterialModule.forRoot(),
],
exports: [
ConfirmDialog,
],
declarations: [
ConfirmDialog,
],
providers: [
DialogsService,
],
entryComponents: [
ConfirmDialog,
],
你可能不想把它放在引号里:
let modal = this.modalCtrl.create("SearchPage")
而不是(不正确):
你可以这样做 导入或创建带有以下内容的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 {}
删除所有导入页面链接。比如说,
import { HomePage } from '../pages/home/home';
然后,替换页面链接,如
rootPage:any=主页;
使用rootPage:any='HomePage'强>
或者
this.navCtrl.push(主页);使用this.navCtrl.push('HomePage')强>
i、 e.用单引号或双引号写类名。更具体地说,您必须将页面添加到“entryComponents”列表中。不管您是使用组件装饰器的“entryComponents”属性还是在与NgModule装饰器相关的“entryComponents”属性中执行此操作。所有页面都必须以某种方式显示在此列表中。否则angular不会为此组件创建工厂。Ionic文档/Angular文档对此并不清楚。如果你把源代码放进去也没关系,但是大写字母确实在angulars提前编译(AoT)时起到了作用。小心点。爱奥尼亚2.0.0这个问题已经解决了。看起来你的代码不完整,不是吗?另外,您在提出问题后提供了代码,因此并不清楚您提供的代码到底是做什么的。请澄清。我把它放在了NGM模块上。没有必要增加出口。只需要加上减让和进入部分。是的,这个过程在我的情况下也起了作用。有3个地方应该提到组件:1。然后在导入组件时,2。加上“减让”和3。@NgModule中的外接程序入口组件。就是这样。
rootPage:any=主页;使用rootPage:any='HomePage'代码>-如果我没有遗漏页面名称周围的引号,我本可以省下一些头发
import { HomePage } from '../pages/home/home';