2017-05-07 106 views
0

我添加了在entryComponents中有一个组件的页面(HomePage),但仍然收到一个错误:“Error:Uncaught(in promise) :错误:组件主页不是任何NgModule的一部分或该模块尚未导入到您的模块。“导航到组件不工作在Ionic Framework中的页面:3.0.1

Code Block-- 
login.module.ts---- 

@NgModule({ 
    declarations: [ 
    LoginPage, 
    ], 
    imports: [ 
    IonicPageModule.forChild(LoginPage), 
    ], 
    exports: [ 
    LoginPage 
    ], 
    entryComponents:[HomePage]// Added here 
}) 
export class LoginModule {} 
----- 
login.ts---------------- 
@IonicPage() 
@Component({ 
    selector: 'page-login', 
    templateUrl: 'login.html' 
}) 
export class LoginPage { 
createUserId(){ 
    this.myProvider.createUserId(this.value,data=>{ 
    if(data=="success") 
    { 
     this.check_response="UserID created" 
     this.navCtrl.push(HomePage)//-----Getting an error here 
    } 
    else 
    this.check_response="Failure" 
    }) 
    //console.log("submit") 

} 
} 

homepage.module.ts----------- 
@NgModule({ 
    declarations: [ 
    HomePage 

    ], 
    imports: [ 
    IonicPageModule.forChild(HomePage), 
    AddExpenseModule 
    ], 
    exports: [ 
    HomePage 
    ] 
}) 
export class HomePageModule {} 

回答

0

您还需要在ngModule的声明数组中包含HomePage。所有的应用程序组件,指令等都需要在声明数组中做。一个很好的详细解释可以在这里找到:https://www.joshmorony.com/an-introduction-to-ngmodule-for-ionic-2/

+0

嘿,谢谢你帮助我,但我也试过了。它似乎只发生在延迟加载实例如果我声明和做app.module.ts中的entryComponent似乎一切正常运行。 – sliceh

+0

没问题。如果我理解你说的正确,那是预期的行为。您的应用使用的每个组件都需要声明。在应用程序加载时将立即使用的任何组件(如HomePage似乎在这种情况下)也必须位于entryComponents中。还要确保你将组件导入ngModule。 – amuramoto

+0

是的,但它似乎并没有工作,如果我做它作为单独的模块。如果我声明n在app.module.ts中使用它,那么在此使用什么是延迟加载。 – sliceh