2016-09-26 29 views
5

मैं एक वेब ऐप पर दो शीर्ष स्तर के मॉड्यूल और प्रत्येक के तहत कई मॉड्यूल के साथ काम कर रहा हूं। उदाहरण:कोणीय 2 कोस्टेड मॉड्यूल नहीं मिला

  • सार्वजनिक

    • पंजीकरण
    • लॉगिन
  • पोर्टल

    • डैशबोर्ड
    • परिणाम
    • नियुक्तियों

नेस्टेड मॉड्यूल से प्रत्येक एक या अधिक संभावित मार्ग, सेवाओं और घटक हैं। सार्वजनिक और पोर्टल मॉड्यूल में अलग-अलग लेआउट आवश्यकताएं भी होती हैं।

मैं क्या करना चाहता हूं ऊपर दिए गए प्रत्येक मुख्य अनुभाग के लिए मेरे कोड को मॉड्यूल में तोड़ना है। हालांकि, जब मैं एक और मार्ग के एक बच्चे के रूप में एक मॉड्यूल लोड करने का प्रयास, मैं मॉड्यूल बताते हुए एक त्रुटि नहीं पाया जा सकता है:

error_handler.js:46 
EXCEPTION: Uncaught (in promise): Error: Cannot find module './dashboard/dashboard.module'. 

यहाँ मेरी मार्ग फ़ाइलें हैं:

/app/app.routing.ts 

import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 

export const appRouting: ModuleWithProviders = RouterModule.forRoot([ 
    { 
    path: 'portal', 
    loadChildren: 'portal/portal.module#PortalModule' 
    }, 
    { 
    path: '', 
    loadChildren: 'public/public.module#PublicModule' 
    } 
]); 


/app/portal/portal.routing.ts 

import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import { PortalComponent } from './portal.component'; 

export const portalRouting: ModuleWithProviders = RouterModule.forChild([ 
    { 
    path: '', 
    component: PortalComponent, 
    children: [ 
     { 
     path: 'dashboard', 
     loadChildren: './dashboard/dashboard.module#DashboardModule' 
     } 
    ] 
    } 
]); 

"डैशबोर्ड" मॉड्यूल पर रहता है: /app/portal/dashboard/dashboard.module.ts, लेकिन इससे कोई फर्क नहीं पड़ता कि मैंने मॉड्यूल पथ को loadChildren में सेट किया है, ऐसा लगता है कि ऐसा नहीं लगता है।

मैं क्या गलत कर रहा हूं? मैं SystemJS के बजाय वेबपैक का उपयोग कर रहा हूं।

+0

क्या आप अपनी 'systemjs.config.js' फ़ाइल जोड़ सकते हैं? – Supamiu

+0

@ सुपमीयू माफी, मैं उल्लेख करना भूल गया कि मैं वेबपैक – Brandon

+0

का उपयोग कर रहा हूं, मुझे नहीं लगता कि समस्या यहां से आती है, लेकिन आपका पोर्टल रूटिंग मुख्य पथ एक खाली पथ होना चाहिए, क्योंकि 'पोर्टल' पहले से ही एपराउटिंग –

उत्तर

1

ईएस 6-वादा लोडर का उपयोग करना अब तक मेरे लिए काम कर रहा है। यहाँ इस बात के लिए अपने रूटर है ...

app/app.routing.ts 
import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 

export const appRouting: ModuleWithProviders = RouterModule.forRoot([ 
    { 
    path: 'portal', 
    loadChildren:() => require('es6-promise!./portal/portal.module')('PortalModule') 
    }, 
    { 
    path: '', 
    loadChildren:() => require('es6-promise!./public/public.module')('PublicModule') 
    } 
]); 

app/portal/portal.routing.ts 
import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import { PortalComponent } from './portal.component'; 

export const portalRouting: ModuleWithProviders = RouterModule.forChild([ 
    { 
    path: 'portal', 
    component: PortalComponent, 
    children: [ 
     { 
     path: 'dashboard', 
     loadChildren:() => require('es6-promise!./dashboard/dashboard.module')('DashboardModule') 
     }, 
     { 
     path: 'results', 
     loadChildren:() => require('es6-promise!./results/results.module')('ResultsModule') 
     } 
    ] 
    } 
]); 

app/portal/dashboard/dashboard.routing.ts 
import { ModuleWithProviders } from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 
import { DashboardComponent } from './dashboard.component'; 

export const dashboardRouting: ModuleWithProviders = RouterModule.forChild([ 
    { 
    path: '', 
    component: DashboardComponent 
    } 
]); 

और मैं अपने <router-outlet> टैग का सही उत्पादन दिखाई दे रही है।

0

डैशबोर्ड मॉड्यूल के लिए सही पथ app/portal/dashboard/dashboard.module होगा।

किसी कारण से वेबपैक को इस मामले में पूर्ण पथ की आवश्यकता है। पथ बदलने के बाद सर्वर को पुनरारंभ करना न भूलें।

+0

मैंने इस दृष्टिकोण की कोशिश की है और एक ही परिणाम मिला है।हालांकि, अगर मैं ईएस 6-वादा लोडर का उपयोग करता हूं, तो यह अपेक्षित काम करेगा। – Brandon

+0

क्या आपने सर्वर को पुनरारंभ किया था? मेरे मामले में यह केवल उसके बाद काम किया। –

+0

हां, और मुझे अभी भी एक ही परिणाम मिला है। – Brandon

संबंधित मुद्दे