gpt4 book ai didi

Angular 4 指令错误 : Can't resolve all parameters for directive

转载 作者:太空狗 更新时间:2023-10-29 17:34:47 24 4
gpt4 key购买 nike

我是 Angular 的新手,正在尝试注入(inject) basic structural directive来自 Angular 指南。这是我的指令:

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;
}
}
}

我正在尝试将它注入(inject)我的 TradeModule:

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>
...

但是我得到了错误:

Uncaught Error: Can't resolve all parameters for DropdownDirective: ([object Object], [object Object], ?).

Webstorm 也是我的 @Directive 装饰器的基础,并说如下:

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], ?)

enter image description here

它还说我的 pcDropdown 输入未使用:

enter image description here

不得不说,我已经看到了this answer并且 emitDecoratorMetadata 已在 tsconfig.json 中设置为 true

请指出我拼写错误或忘记在我的代码中包含某些内容的地方。

非常感谢

最佳答案

private items 缺少类型参数。如果 Angular 无法将所有参数解析为提供者,则它无法创建组件实例。
解析为提供者仅适用于参数类型和 @Inject(...) 注释。

如果您不想注入(inject) items,请删除该参数。在任何情况下,您都不需要自己创建组件实例来显式传递参数。

关于Angular 4 指令错误 : Can't resolve all parameters for directive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45194125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com