私はまったく新しい角度ですし、角度ガイドからbasic structural directiveを注入しようとしています。角4のディレクティブエラー:ディレクティブのすべてのパラメータを解決できません
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '../shared/shared.module';
import { TradeComponent } from './trade.component';
import { DropdownDirective } from '../dropdown.directive/dropdown.directive';
@NgModule({
imports: [
CommonModule,
SharedModule
],
declarations: [TradeComponent, DropdownDirective],
exports: [DropdownDirective]
})
export class TradeModule { }
そして、私のTradeComponent
のテンプレートにHTMLの以下の部分を使用します:
...
<p *pcDropdown="true">
TEST
</p>
...
私は私の
TradeModule
でそれを注入しようとしている
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
@Directive({
selector: '[pcDropdown]'
})
export class DropdownDirective {
private hasView = false;
constructor(
private templateRef: TemplateRef<any>,
private viewContainer: ViewContainerRef,
private items
) { }
@Input() set pcDropdown(condition: boolean) {
if (!condition && !this.hasView) {
this.viewContainer.createEmbeddedView(this.templateRef);
this.hasView = true;
} else if (condition && this.hasView) {
this.viewContainer.clear();
this.hasView = false;
}
}
}
:ここに私のディレクティブです
エラーが表示されます。
Uncaught Error: Can't resolve all parameters for DropdownDirective: ([object Object], [object Object], ?).
Webstormも私の@Directive
デコレータの基礎となると、次のことを言うている:
pcDropdown
入力が未使用であることを言う
Angular: Can't resolve all parameters for DropdownDirective in /home/commercialsuicide/Desktop/my-app/src/client/app/dropdown.directive/dropdown.directive.ts: ([object Object], [object Object], ?)
:
こと、言う必要があります私はすでにthis answerとemitDecoratorMetadata
が既にtrue
に設定されていることを見た。
私のスペルが間違っているか、自分のコードに何かを含めるのを忘れたことを指摘してください。
感謝
Hmの場合、溶液は非常に塩基性である。あなたの助けをありがとう! –
ヒント:エラーメッセージは、 '?'どのパラメータがエラー 'DropdownDirective:([オブジェクトオブジェクト]、[オブジェクトオブジェクト]、?)を発生させます。これはあなたのためにそれをすでに解決して嬉しい:) –