0

このサンプルアプリを使って ES6 JavaScript で Angular2 を勉強しています。具体的には、アプリ全体のルート JavaScript ファイル ( boot.js ) から始まる依存関係のチェーンをマッピングしようとしています。 次の3行でインポートされているものを正確に説明してくださいboot.js

import { CORE_PROVIDERS } from './app/core';
import { AUTH_PROVIDERS } from './app/auth';
import { POSTS_PROVIDERS } from './app/posts';

'./app/core'上記の GitHub リンクの、'./app/auth'、およびディレクトリに移動すると、これらのディレクトリにネストされたファイルが非常に多く、上記の 3 つのコマンドによって 3 つの変数'./app/posts'に正確に何が渡されているのかわかりません。..._PROVIDERS他の誰かがこれを説明してもらえますか?

完全なコードboot.jsは次のとおりです。

import './shim';
import 'rxjs/add/operator/map';
import { bootstrap } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { FORM_PROVIDERS, LocationStrategy, HashLocationStrategy } from '@angular/common';
import { HTTP_PROVIDERS } from '@angular/http';

import { AppComponent } from './app/core/components/app/app.component';
import { APP_ROUTES_PROVIDER } from './app/core/app.routes';
import { CORE_PROVIDERS } from './app/core';
import { AUTH_PROVIDERS } from './app/auth';
import { POSTS_PROVIDERS } from './app/posts';

if (ENVIRONMENT === 'production') {
  enableProdMode();
}

bootstrap(AppComponent, [
  FORM_PROVIDERS,
  HTTP_PROVIDERS,

  APP_ROUTES_PROVIDER,
  AUTH_PROVIDERS,
  POSTS_PROVIDERS,
  CORE_PROVIDERS,

  { provide: LocationStrategy, useClass: HashLocationStrategy },
  { provide: 'ENVIRONMENT', useValue: ENVIRONMENT }
]);
4

2 に答える 2

1

あなたが持っているとき

import { Something } from './one/two';

フォルダーのファイルSomethingによってエクスポートされた識別子を探します。indextwo


あなたの場合、にあるファイル/client/boot.js

import { CORE_PROVIDERS } from './app/core';
import { AUTH_PROVIDERS } from './app/auth';
import { POSTS_PROVIDERS } from './app/posts';

最初のものは、からエクスポートされたCORE_PROVIDERS識別子を探します/client/app/core/index.jsこれは次のとおりです。

import { LoggedInGuard } from './guards/logged-in.guard';
import { LoggedOutGuard } from './guards/logged-out.guard';

export const CORE_PROVIDERS = [LoggedInGuard, LoggedOutGuard];

ご覧のとおり、他のファイルに存在する他のプロバイダーを「再エクスポート」するだけです。

で最初のもの/client/app/core/guards/logged-in.guard.jsなど。


ちなみに、このファイルの使用は良い方法であり、Angular2 スタイル ガイドのCreate and Import Barrelsindexにも推奨されています。

于 2016-07-23T00:33:32.570 に答える
1

*_PROVIDERSエクスポートは、Angular 2 で複数の関連するプロバイダーを単一の定数 (AngularJS モジュールの大まかな対応物) の下に保持するための従来の方法です。

これらは Angular 2 の依存関係ではなく、アプリの依存関係です。それらは、インデックス ファイルからネストされたモジュールまで 1 つずつ追跡できます。

于 2016-07-23T00:33:40.600 に答える