Angular2アプリをRC2に移行し、ルーターのバージョン3アルファを使用しようとしています。
私はルーティングのために angular docs によって plunkerが与えられた の設定を追跡しましたが、次のエラーが発生し続けます:
/ @ angular/router/index "'には、エクスポートされたメンバー' provideRouter 'がありません
/ @ angular/router/index "'にはエクスポートされたメンバー' RouterConfig 'がありません
私のapp.router.tsファイルで次のインポートを使用しようとすると:
import { provideRouter, RouterConfig } from '@angular/router';
Commonjsモジュール形式のVisual StudioでTypeScriptを使用しています。
ここに私の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"
次のように、私のsystem.config.jsで角度/ルートをnpm cdnに設定した場合でも、
'@ angular/router': ' https://npmcdn.com/@angular/[email protected]. '
それでもエラーが発生します。
Alpha.4、alpha.5、最新のalpha.6バージョンを使用してみました。
Noduleモジュールフォルダーを削除し、npmインストールを強制的に実行して新しいファイルを取得しようとしました。
質問:
エクスポートされたメンバーprovideRouter、RouterConfigができる理由を誰かが理解するのを手伝ってくれる?見つかりませんか?
ありがとう
同じ問題があり、バージョン3.0.0-alpha.7を使用して解決しました
ここに私の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"}
ただし、私はそれを安定版とは呼びませんが、新しいドキュメント https://angular.io/docs/ts/latest/guide/router.html は誤解を招く可能性があります。
ProvideRouterの代わりにProviderRoutesを使用してみてください
import {provideRoutes} from "@angular/router";
そしてあなたのルーティング:
provideRoutes([
{path: '', redirectTo: '/myurl'}
])
[〜#〜] upd [〜#〜]現時点では、provideRoutersはまったく必要ありません。パスを記述し、「@ 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);
また、これに数時間取り組み、beta7にアップグレードしました。パッケージ名をindex.jsに変更したときは、system.config.jsを忘れずに変更してください(たとえば、「platform-browser-dynamic/platform-browser-dynamic.js」は「platform-browser-dynamic/index.js」に名前が変更されました)。
しかし、今はデフォルトのルートを機能させることができないようです、それは ''ですか?
編集:デフォルトのルーティングは単純です:
{
path: '',
redirectTo: 'index.php/component/atkstat/dashboard'
},
この行を@ angular/routerとして追加する必要があります
packages['@angular/router'] = { main: 'index.js', defaultExtension: 'js' };
これのpackage.jsonとsystem.config.jsを見て、あなたを助けるかもしれません