2017-08-31 84 views
0

CLI:ionic3/angular4延遲加載不要工作

ionic start demo1 tabs 

然後創建兩個頁面使用CMD:

node -v 6.11.2 
cordova -v 6.5.0 
ionic -v 3.9.2 

只有主頁(手動刪除)創建離子標籤的項目:

ionic g page Oneself 
ionic g page Setting 

這是app.module.ts代碼:

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

 
import { HomePage } from '../pages/home/home'; 
 
import { TabsPage } from '../pages/tabs/tabs'; 
 
//import { SettingPage } from "../pages/setting/setting"; 
 
//import { OneselfPage } from "../pages/oneself/oneself"; 
 

 
import { StatusBar } from '@ionic-native/status-bar'; 
 
import { SplashScreen } from '@ionic-native/splash-screen'; 
 

 
@NgModule({ 
 
    declarations: [ 
 
    MyApp, 
 
    HomePage, 
 
    TabsPage 
 
    ], 
 
    imports: [ 
 
    BrowserModule, 
 
    IonicModule.forRoot(MyApp) 
 
    ], 
 
    bootstrap: [IonicApp], 
 
    entryComponents: [ 
 
    MyApp, 
 
    HomePage, 
 
    TabsPage 
 
    ], 
 
    providers: [ 
 
    StatusBar, 
 
    SplashScreen, 
 
    {provide: ErrorHandler, useClass: IonicErrorHandler} 
 
    ] 
 
}) 
 
export class AppModule {}

這是oneself.module.ts這樣的:

import { NgModule } from '@angular/core'; 
 
import { IonicPageModule } from 'ionic-angular'; 
 
import { OneselfPage } from './oneself'; 
 

 
@NgModule({ 
 
    declarations: [ 
 
    OneselfPage, 
 
    ], 
 
    imports: [ 
 
    IonicPageModule.forChild(OneselfPage), 
 
    ], 
 
    exports:[ 
 
    OneselfPage 
 
    ] 
 

 
}) 
 
export class OneselfPageModule {}

這是oneself.ts文件中的代碼是這樣的:

import { Component } from '@angular/core'; 
 
import { IonicPage, NavController, NavParams } from 'ionic-angular'; 
 

 
/** 
 
* Generated class for the OneselfPage page. 
 
* 
 
* See http://ionicframework.com/docs/components/#navigation for more info 
 
* on Ionic pages and navigation. 
 
*/ 
 

 
@IonicPage() 
 
@Component({ 
 
    selector: 'page-oneself', 
 
    templateUrl: 'oneself.html', 
 
}) 
 
export class OneselfPage { 
 
    constructor(public navCtrl: NavController, public navParams: NavParams) { 
 
    } 
 
    ionViewDidLoad() { 
 
    console.log('ionViewDidLoad OneselfPage'); 
 
    } 
 
}

SettingPage同上;

這是tabs.ts代碼:

import { Component } from '@angular/core'; 
 
import { HomePage } from '../home/home'; 
 

 
@Component({ 
 
    templateUrl: 'tabs.html' 
 
}) 
 
export class TabsPage { 
 

 
    tab1Root = HomePage; 
 
    tab2Root = "OneselfPage";//class name 
 
    tab3Root = "SettingPage";//class name 
 
    constructor() { 
 
    
 
    } 
 
}

我知道,延遲加載有幾個關鍵點,如宣稱@ionicpage (),@ngmodule,IonicPageModule。 ForChild(pageName)...我在我的代碼中有這樣的聲明,但延遲加載不起作用,錯誤如下:

這是第一行錯誤,我不知道它是否與懶加載

event.returnValue is deprecated. Please use the standard event.preventDefault() instead. 

下面的錯誤必須是與延遲加載:

Error {rejection: Error, promise: t, zone: r, task: t, stack: <accessor>, …} 
message: "Uncaught (in promise): Error: Cannot find module '../pages/oneself/oneself.module'. 
Error: Cannot find module '../pages/oneself/oneself.module' 
at file:///android_asset/www/build/main.js:65357:9 
    at t.invoke 

見截屏: https://i.stack.imgur.com/AGTVN.jpg

有人可以幫我回答這個問題嗎?

回答

1

問題解決,科爾多瓦離子與CNPM安裝有問題,不使用CNPM安裝,使用NPM安裝,延遲加載運行。

0

CLI:

node -v 8.2.1 
cordova -v 7.0.1 
ionic -v 3.9.2 

我按照你所描述

ionic start demo1 tabs 
ionic g page Oneself 
ionic g page Setting 

我無法重現的任何錯誤的,你是說明

event.returnValue is deprecated. Please use the standard event.preventDefault() instead.

Error {rejection: Error, promise: t, zone: r, task: t, stack: <accessor>, …} message: "Uncaught (in promise): Error: Cannot find module '../pages/oneself/oneself.module'. Error: Cannot find module '../pages/oneself/oneself.module' at file:///android_asset/www/build/main.js:65357:9 at t.invoke

如果你想以比較my reproduction of your scenario you can do so, hope this helps