問題タブ [angular2-modules]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 多くの ngModule で変数を持つ 1 つのサービス
それは実際には問題ではありませんが、質問です:
テスト プロジェクトでは、同じ TranslateService を持つ複数の ngModule で ng2-translate を使用しようとしています。
パッケージ.json:
新しいモジュールを宣言する必要があるすべてのモジュールに対して、機能していません
「翻訳モジュール」
また、コンポーネントでは新しい TranslateService であるため、翻訳言語の値は保持されません。
複数の ngModule に同じサービスを注入しようとしていますか? はいの場合、どのように?
ありがとう。
angular - 「モジュール」が NgModule の一部ではないか、モジュールがモジュールにインポートされていません
いくつかのモジュールを含むアプリケーションがあります。
ここに私のルートモジュールがあります:
そして、これが私の一般的なモジュールの1つです。
これが正しい方法だと思いましたが、次のエラーが発生しています。
AppModule が NgModule の一部ではないか、モジュールがモジュールにインポートされていません
アプリケーション全体で AppModule を検索しましたが、app.module.ts
.
何かをインポート/エクスポートするのに欠けていますか? どんな助けでも素晴らしいでしょう。ありがとう。
angular - 遅延ロードされたモジュールと systemjs を使用した Angular2 AOT コンパイル
短縮版:
クイックスタートに従って systemJS を使用する angular2 (現在 2.2.1) は、遅延ロードされたモジュールと事前コンパイルの両方で機能しますか?
より長いバージョン:
私は angular2 を初めて使用し、angular.io のクイックスタートと追加のドキュメントに従って、いくつかのコンポーネントを含む単純なサイトを作成し、ルーティングによって遅延ロードされるモジュールに分割しました。
ここに従ってください: https://angular.io/docs/ts/latest/cookbook/aot-compiler.html
すべての指示に従いました。「node_modules/.bin/ngc」-p tsconfig-aot.json コマンドで aot フォルダーに出力があり、「build.js」ファイルがあります。 '"node_modules/.bin/rollup" -c rollup-config.js' コマンドを実行した後の dist フォルダー。
index.html をセットアップして system.js を削除し、代わりに build.js 出力を参照しました。
私の最初の実行は失敗し、「システム」が何であるかわからないと不平を言っています。ビルド プロセスでは、system.js は不要になったので、そこで何が起こっているのかわかりません。
system.js を含めて再度実行すると、エラーに次のスタック トレースが表示されます。
リソースの読み込みに失敗しました: サーバーは 404 (Not Found) のステータスで応答しました build.js:3 例外: Uncaught (in promise): Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3000 /app/shell/layout.module.ngfactory エラー: XHR エラー (404 Not Found) http://localhost:3000/app/shell/layout.module.ngfactory を XMLHttpRequest.wrapFn [as _onreadystatechange] で読み込み中 ( http:// localhost:3000/node_modules/zone.js/dist/zone.js:698:29 ) で ZoneDelegate.invokeTask ( http://localhost:3000/node_modules/zone.js/dist/zone.js:265:35 ) でObject.onInvokeTask ( http://localhost:3000/dist/build.js:4:15086 ) で ZoneDelegate.invokeTask (http://localhost:3000/node_modules/zone.js/dist/zone.js:264:40 ) Zone.runTask ( http://localhost:3000/node_modules/zone.js/dist/zone.js:154 ) :47 ) XMLHttpRequest.ZoneTask.invoke ( http://localhost:3000/node_modules/zone.js/dist/zone.js:335:33 )でhttp://localhost:3000/app/shell/layout のロード中にエラーが発生しました。 module.ngfactory (SystemJS) XHR エラー (404 Not Found) http://localhost:3000/app/shell/layout.module.ngfactory の読み込み エラー: XHR エラー (404 Not Found) http://localhost:3000/app の読み込み中XMLHttpRequest.wrapFn の/shell/layout.module.ngfactory [_onreadystatechange として] ( http://localhost:3000/node_modules/zone.js/dist/zone.js:698:29) ZoneDelegate.invokeTask ( http://localhost:3000/node_modules/zone.js/dist/zone.js:265:35 ) で Object.onInvokeTask ( http://localhost:3000/dist/build.js:4 ) :15086 ) ZoneDelegate.invokeTask ( http://localhost:3000/node_modules/zone.js/dist/zone.js:264:40 ) で Zone.runTask ( http://localhost:3000/node_modules/zone.js ) /dist/zone.js:154:47 ) XMLHttpRequest.ZoneTask.invoke ( http://localhost:3000/node_modules/zone.js/dist/zone.js:335:33 ) でhttp://localhostのロード中にエラーが発生しました: 3000/app/shell/layout.module.ngfactory
' http://localhost:3000/app/shell/layout.module.ngfactory 'をロードしようとしているのが不思議です。これは私の遅延ロード モジュールの 1 つです。
AOT は遅延ロードされたモジュールでは機能しませんか?
angular - Angular 2は、1つの子モジュールから子モジュールへの子セレクターを呼び出します
次のディレクトリ構造があります。
app.module.ts
app.component.ts
core.module.ts
core.component.ts
カテゴリ.モジュール.ts
カテゴリ.コンポーネント.ts
カテゴリと同じレベルにある on 、つまり main の子モジュールcategory selector
をcategory.component.ts
呼び出したいと思います。core.component.ts
app.module
モジュールを親モジュールリストに追加するだけで、別のモジュールで定義されていないコンポーネントを呼び出すことはできますか?
編集:このエラーが発生しています:
javascript - Angular 2 ルーティング モジュールの相互作用
SimpleCalculations、FunnyCalculations、OtherCalculations の 3 つのモジュールがあります。それぞれにrouting.module.ts
ファイルがあり、そこで子ルートやその他のものを定義します。
MainCalculation モジュールが必要です。これは、既に説明したモジュールから子ルートが取得されます。たとえばCanActivate
、これらのモジュールのすべてのルートに共通のガードを追加します。
それを行う正しい方法は何ですか?このすべてのルートを 1 つのファイルで台無しにしたくありません。
angular - コア モジュールで定義されたコンポーネントを遅延ルートから使用するにはどうすればよいですか?
アプリケーション全体のいくつかの場所で再利用したいコンポーネントがあります。そのため、新しいコンポーネントを使用してコア モジュール内にモジュールを作成しました。私が得ているエラーはです'foo' is not a known element
。
ここでデモを見ることができます。app/core/foo/foo.component.ts
にインポートされた でモジュールを共有したいコンポーネントが表示されCoreModule
ます。FooComponent
そして、 ( selector をfoo
使用して) で使用されていることがわかりますapp/crisis/crisis-list.component.ts
。
私は Angular 2 モジュールのドキュメントを読んだことがありますが、好きFooComponent
な場所で使用できない理由がわかりません。
私は何が欠けていますか?
javascript - angular2ルーターはルートをパラメーターとして解釈しますか?
ルート パラメータを使用して子モジュールにルーティングしようとしています。私の app.routes は次のようになります。
私の子コンポーネント(セル)には次のルートがあります:
次のようになりCellComponent
ます。
/cell/2
ルートを呼び出してコンソールにアクセスできることを期待していますが2
、その呼び出しを行うとエラーが発生します。
TypeError: 未定義のプロパティ '長さ' を読み取ることができません
これは、未定義のルートを使用しているためと思われます。呼び出すだけで/cell
、コンポーネントが正常にロードcell
され、コンソールに出力されます。ルーターがルートをパラメーターとして解釈するのはなぜですか?
angular - Angular2 ルーティング: ルーティングを使用してサブモジュールをインポート + プレフィックスを付ける
メインモジュールといくつかのサブモジュールがあります。そして、それらの間の自明ではないルーティングを指定したいと思います。
サブモジュール内でサブモジュールのルートを定義することをお勧めします。例えば:
このモジュールを独自の内部ルーティングでインポートしたいのですが、ルーティング全体をプレフィックスにしたいと考えています。
この設定により、次のルートが作成されます: /country
、/country/list
などですが、次のように接頭辞を付けたいと思います:
/settings/country
/settings/country/list
/settings/country/create
別のルーティングを介してアクセスしたい他のモジュールがあります。たとえば、CityModule
under/otherstuff/city/create
および /otherstuff/city/list` です。
私の質問:
- 独自のルーティングでモジュールをインポートし、そのルートをプレフィックスにすることは可能ですか?
- さらに: 最終的な (接頭辞付きの) ルートにとらわれずに 2 つのサブモジュール間のリンクを作成する方法はありますか?
アップデート
受け入れられた答えは、それを行うための最良の方法です。モジュール内にルートを作成し、それらを外部に登録します。したがって、ルートを変更できます。たとえば、ルートにプレフィックスを付けたり(これは私が望んでいたことです)、ガードを定義したり、オーバーライドまたはフィルタリングしたりできます。