いくつかの使用例があるため、Angular2でPrimeNGコンポーネントを拡張する必要があります。プルプルプルーフを検証するには、十分に複雑なのでDataTable
を使用することを選択しました。文字通り@Component
注釈を貼り付けコピーした後Angular2内でPrimeNgコンポーネントを拡張する
、私が追加しました:この時点で
export class PPDataTable extends DataTable {}
を私は次のエラーを取得する:No provider for DataTable
。アノテーションのproviders
配列にDataTable
を追加すると、私のDataTable
の内容は空になります。
したがって、私は、{ provide: DataTable, useValue: PPDataTable }
を追加しようとしました。このようなエラーは、TypeError: co.dt.isSorted is not a function
のように発生します。私は新しいクラスにthis.isSorted
を記録しようとしましたが、それは存在します。
このような拡張方法を教えてください。
また、PrimeNgコンポーネントのセレクタ名を変更するための解決策があります(何とか折り返します)?
いくつかのより多くの私は、この発見デバッグスタックを見た後に編集
代わりにオブジェクトを直接提供するので、私は、オブジェクトを含む配列を提供していますようだと、これを私の推測では、エラーの原因です。私がソースコードに入り、それをdt[0].isSorted()
に変更すれば、それは動作します!
オブジェクトを直接提供するにはどうすればよいですか?
回答
は私が{ provide: DataTable, useExisting: PPDataTable }
を提供する場合、それが動作すると思われます。
私はまだ質問で説明したのと同じTypeErrorを取得しています。 – user1640736
'ExtendingClass'を正しく提供しているかのように感じますが、' @Inject(forwardRef()=> DataTable))public dt:DataTable'を使用するコンポーネントは何らかの理由で 'dt'の関数にアクセスできません。また、拡張機能のメソッドを手作業で上書きしても機能しません。まだ定義されていません。 – user1640736
@ user1640736 'コンストラクタ(@Inject(forwardRef())=> DataTable))dt){}'を試してください。 – SrAxi