3

shlomiassaf/angular2-modalで customModal.tsのモーダルをカスタマイズします。具体的には、ngModel を含む入力を追加し、FORM_DIRECTIVES とディレクティブをインポートしました。

「Renderer のプロバイダーがありません!」を実行したときの問題 (NgModel -> トークン NgValueAccessor -> DefaultValueAccessor -> レンダラー)'

この問題を解決するのを手伝ってください。ありがとう。

4

2 に答える 2

1

2 つの可能性があります。

  • 対応するプロバイダーは、コンポーネントまたはアプリケーション レベルで指定されていません。属性または関数の2番目のパラメーター内Rendererで指定せずにすでに a を注入しているため、問題はないと思います。providersbootstrap

    そんな感じ:

    import {Component,Renderer,ElementRef} from 'angular2/core';

    @Component({
      selector: 'child',
      template: '<div></div>',
    })
    export class ChildComponent {
      constructor(private _renderer: Renderer,
               private el: ElementRef) {
        (...)
      }
    }
  • むしろ、レンダラーが注入されるクラスが装飾されていないため、依存性注入が適用できないためだと思います。このコメントで強調されているように、注入するにはこれが必要です。Injectable何かに注入するためではなく、それ自体に注入するためのものです。

編集

コードを確認した後、メソッドに提供するプロバイダーのリストにレンダラーを追加する必要があるようですloadNextToLocationDialogService#openメソッドのコードを次のように更新できます。

var otherResolved = Injector.resolve([
  provide(DialogRef, { useValue: dialogRef})
  provide(Renderer, { useValue: this.renderer})
]);

お役に立てば幸いです、ティエリー

于 2016-01-05T10:36:24.340 に答える
0

おそらくコンポーネントデコレータを追加する必要があります

@Component({
  providers: [Renderer],
  ...
)}
于 2016-01-05T09:44:42.737 に答える