web-dev-qa-db-ja.com

新しい@ angular / router 3.0.0-alpha.3 ^には、provideRouterおよびRouterConfigがありません。

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インストールを強制的に実行して新しいファイルを取得しようとしました。

質問:

エクスポートされたメンバーprovideRouterRouterConfigができる理由を誰かが理解するのを手伝ってくれる?見つかりませんか?

ありがとう

12
J King

同じ問題があり、バージョン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 は誤解を招く可能性があります。

9
chriisi

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);
5
Artem Ignatiev

また、これに数時間取り組み、beta7にアップグレードしました。パッケージ名をindex.jsに変更したときは、system.config.jsを忘れずに変更してください(たとえば、「platform-b​​rowser-dynamic/platform-b​​rowser-dynamic.js」は「platform-b​​rowser-dynamic/index.js」に名前が変更されました)。

しかし、今はデフォルトのルートを機能させることができないようです、それは ''ですか?

編集:デフォルトのルーティングは単純です:

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

この行を@ angular/routerとして追加する必要があります

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

これのpackage.jsonとsystem.config.jsを見て、あなたを助けるかもしれません

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

1
Long Field