2016-06-17 27 views
10

Sto migrando un'app angular2 a RC2 e sto provando a utilizzare la versione 3 del router alpha.provideRouter e RouterConfig non trovati nel nuovo @ angular/router 3.0.0-alpha.3^

Ho seguito il set up della plunker given dal angular docs per il routing Ma io continuo a ricevere i seguenti errori:

/@angular/router/index"' has no exported member 'provideRouter'

/@angular/router/index"' has no exported member 'RouterConfig'

quando si cerca di utilizzare le seguenti importazioni nel mio file app.router.ts:

import { provideRouter, RouterConfig } from '@angular/router'; 

Sto usando dattiloscritto in Visual Studio con formato modulo commonjs.

Ecco i dependecies dal mio packages.json

"@angular/common": "2.0.0-rc.2", 
"@angular/compiler": "2.0.0-rc.2", 
"@angular/core": "2.0.0-rc.2", 
"@angular/http": "2.0.0-rc.2", 
"@angular/platform-browser": "2.0.0-rc.2", 
"@angular/platform-browser-dynamic": "2.0.0-rc.2", 
"@angular/router": "3.0.0-alpha.3", 
"@angular/router-deprecated": "2.0.0-rc.2", 
"@angular/upgrade": "2.0.0-rc.2", 
"systemjs": "0.19.27", 
"core-js": "^2.4.0", 
"reflect-metadata": "^0.1.3", 
"rxjs": "5.0.0-beta.6", 
"zone.js": "^0.6.12", 
"angular2-in-memory-web-api": "0.0.12" 

Anche se ho impostato il angolare/percorso per la CDN NPM nei miei system.config.js in questo modo:

'@angular/router': ' https://npmcdn.com/@angular/[email protected] '

I ottieni ancora l'errore.

Ho anche provato a utilizzare alpha.4, alpha.5 e l'ultima versione alpha.6.

Ho provato a eliminare la cartella del modulo nodule e forzare l'installazione di npm per ottenere nuovi file.

DOMANDA:

Qualcuno può aiutarmi a capire il motivo per cui le memebers esportati provideRouter, RouterConfig non può essere trovato?

Grazie

risposta

9

ho avuto lo stesso problema, risolto con l'utilizzo di versione 3.0.0-alpha.7

Qui il mio package.json:

"dependencies": { 
"@angular/common": "2.0.0-rc.2", 
"@angular/compiler": "2.0.0-rc.2", 
"@angular/core": "2.0.0-rc.2", 
"@angular/http": "2.0.0-rc.2", 
"@angular/platform-browser": "2.0.0-rc.2", 
"@angular/platform-browser-dynamic": "2.0.0-rc.2", 
"@angular/router": "3.0.0-alpha.7", 
"@angular/upgrade": "2.0.0-rc.2", 
"systemjs": "0.19.31", 
"core-js": "^2.4.0", 
"reflect-metadata": "^0.1.3", 
"rxjs": "5.0.0-beta.6", 
"zone.js": "^0.6.12", 
"angular2-in-memory-web-api": "0.0.12", 
"bootstrap": "^3.3.6", 
"contentful": "3.3.14"} 

Benche non vorrei chiamare è stabile e la nuova documentazione https://angular.io/docs/ts/latest/guide/router.html può essere un po 'fuorviante.

+1

chriisi Grazie, sembra come se fosse la versione systemjs - meeded per aggiornare a 0.19.31 dal 0.19.27 con l'alfa 7 lavorato –

+1

ora declassato l'Alpha6, dal momento che alpha7 sempre mi ha portato un errore: "percorso può non iniziare con una barra ". Ora funziona come un fascino. – chriisi

+0

grazie, mi sono imbattuto in altri errori, non penso che sia abbastanza stabile per me adesso. Ho intenzione di tornare ad esso una volta che è meglio integrato con RC2 –

1

Anche lottato con questo per alcune ore, aggiornato a beta7. Ricorda di cambiare system.config.js mentre hanno cambiato packagenames in index.js (es. "Platform-browser-dynamic/platform-browser-dynamic.js" è ora chiamato "platform-browser-dynamic/index.js".

Ma ora non riesco a ottenere un percorso predefinito per lavorare, è vero ''

EDIT:? il routing di default è semplicemente:

{ 
    path: '', 
    redirectTo: 'index.php/component/atkstat/dashboard' 
}, 
1

è necessario aggiungere questa linea come @ angolare/router No umd per router ancora

packages['@angular/router'] = { main: 'index.js', defaultExtension: 'js' }; 

Dai un'occhiata a package.json e system.config.js di questo è, possono aiutare voi

http://plnkr.co/edit/y31K7xbiQSVH59qsAOZF?p=preview

+0

Per rc5 http://plnkr.co/edit/nm5m7N?p=preview –

2

tenta di utilizzare provideRoutes invece di provideRouter

import {provideRoutes} from "@angular/router"; 

e il vostro percorso:

provideRoutes([ 
    {path: '', redirectTo: '/myurl'} 
]) 

UPD Per ora è don Non c'è bisogno di fornire distributori. Basta scrivere il percorso e importare i percorsi da da "@ angular/router";

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

const APP_ROUTES: Routes = [ 
    {path: '', redirectTo: '/somthng', pathMatch: 'full'}, 
    {path: 'somthng', component: SomthngComponent}, 
    {path: 'somthng-list', component: SomthngListComponent} 
]; 

export const your_routing = RouterModule.forRoot(APP_ROUTES); 
Problemi correlati