問題タブ [angular2-di]

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.

0 投票する
1 に答える
223 参照

angular - angular 2のDI

私は実際にAngular DIコンテナーを研究していますが、いくつかの情報が必要です。

実際に API を読むと、Injector クラスはファクトリ引数に Binding リストを受け取り、それを解決して ResolvedBinding リストを取得しているようです。

注意: https://angular.io/docs/js/latest/api/di/

次の理由により、システムが Binding と ResolvedBing の間の変換をどのように管理できるのか疑問に思っていました。

  • バインディングは値を返すことができます
  • バインディングはエイリアスを返すことができます
  • バインディングはクラスを返すことができます
  • バインディングはファクトリを返すことができます

ResolvedBinding コンストラクターは次のとおりです。

必要なときにファクトリを返すことは問題ないように思えます (そして、クラスが毎回ファクトリを介して作成されていることを認めれば、クラスも)、値のみを返す必要がある場合はどうすればよいでしょうか? fw は具体的に値を返すためのファクトリを作成しますか?

0 投票する
2 に答える
36420 参照

angular - 親コンポーネントを子コンポーネントに挿入するにはどうすればよいですか?

親コンポーネントを子コンポーネントに挿入しようとしています。これは簡単だと思いました。子の .xml ファイルに親コンポーネントを指定/挿入するだけですconstructor()

次のエラーが表示されます。

例外: ChildComponent(?) のすべてのパラメーターを解決できません。すべてに有効な型または注釈があることを確認してください。

私は何が欠けていますか?

子コンポーネント:

アプリ コンポーネント:

プランカー

0 投票する
2 に答える
1032 参照

angular - Angular 2: ES6/ES7 で依存性注入をどのように処理する必要がありますか?

仕事の制約のためにES6 / ES7を使い続けながら、ロープを学び、切り替えを試みているため、Angular 2内でカスタムコンポーネントに取り組んでいます。次のように定義されたコンポーネントがあるとします。

これを呼び出された別のコンポーネントに渡す必要がありますが、このスタック オーバーフロー スレッドAccordionGroupの回答に従って、コンストラクターで行うように注入しようとすると、次のようになります。

使用して

最初のコメントに記載されている修正を行った後、コンポーネントをレンダリングします。

次のいずれかを使用すると、コンポーネントがレンダリングされます。

また

あるいは

しかし、ES7 でパラメーター デコレーターを使用できるようになるまで、これらのうちどれを使用するのが適切な方法なのかという疑問が残ります。

余談ですが、コードの多くは、TypeScript を使用した Angular 2 のすべてを示すこの特定のチュートリアルからのものでした。Angular 2 へのディレクティブの移行

0 投票する
3 に答える
5994 参照

angular - Angular2 のカスタム バリデータからサービスにアクセスする

例として、静的メソッド内からカスタム http サービスにアクセスする必要があります。

この場合、どのようにサービスにアクセスできますか?

0 投票する
2 に答える
4023 参照

angular - Angular 2 custom service not injected into a directive

I have app.component like this.

chartData.service.ts:

Then I try to use ChartDataService inside chart.directive, which is a child component to app.component. chart.directive.ts:

But it fails with Via the docs each component has an injector which creates dependencies at a component level scope. If there are no any appropriate component level providers parent component's provider is used. This works fine for classes with @Component() decorator. Adding providers: [ChartDataService] to @Directive declaration helps, but that means each decorator will have separate instance of ChartDataService which is undesiarable.

Any ideas? Or is it by design?

0 投票する
2 に答える
73 参照

angular - Angular1 サービスのようなシングルトン オブジェクトを作成するには?

アプリケーションの存続期間中、いくつかの属性の値を保持するシングルトン オブジェクトを Angular2 で作成する方法を考えています。これにより、それを多くのコンポーネントで使用して注入することができます。

何か案は?

ありがとう

私の試みは次のことでした:

この場合、getUsername() は機能しますが、this._http 投稿は機能しません。エラーがスローされます。

元の例外: TypeError: 未定義の元のスタック トレースのプロパティ 'post' を読み取ることができません:

0 投票する
5 に答える
19577 参照

angular - Angular2で依存性注入(DI)を正しく使用するには?

(DI) 依存性注入が Angular2 でどのように機能するかを理解しようとしています。コンポーネントにサービス/クラスを注入しようとするたびに、多くの問題/問題に遭遇しました。

さまざまなグーグル記事からproviders: []、コンポーネント構成で使用するか@Inject()、コンストラクターで使用するか、bootstrap(app, [service])? @injectableまた、いくつかの記事でデコレータ を配置する必要があることも見てきました。

例: Http を挿入するにはimport{Http}、Http をプロバイダーに入れるだけで済みますが、FormBuilder の場合は@Inject()、コンストラクターで使用する必要があります。

いつ何を使用するかについての経験則はありますか? コードスニペットの例をいくつか教えてください。ありがとうございました :-)