我收到这样的错误
action1
action2
actionHandler
action1
action2
有服务声明。
Can't resolve all parameters for ControlErrorsDirective: (?, [object Object], [object Object], [object Object], [object Object], ?).
我看到注入问题与可选的指令服务有关。是的,指令未设置在组件中。但是它们是可选的。为什么调用该错误? 是的,我向模块提供了所有指令。
constructor(
@Optional() @Host() private form: FormSubmitDirective,
private control: NgControl,
private resolver: ComponentFactoryResolver,
public viewContainerRef: ViewContainerRef,
@Inject(FORM_ERRORS) private errors,
@Optional() controlErrorContainer: ControlErrorContainerDirective
) {
但是它不起作用。该错误似乎微不足道。但是我看不到。 在这里效果很好。 https://stackblitz.com/edit/angular-terms-and-conditions-reactive-forms?embed=1&file=src/app/form-errors.ts 问候。
答案 0 :(得分:1)
这类错误,例如:
无法解析Something的所有参数:(?,
通常意味着在执行装饰器时未定义构造函数中用于参数的类型。
发生这种情况的原因有很多:
在DI中使用的类之间具有循环依赖关系
您将所有类都放在一个文件中,并尝试在声明类型之前使用type。所以订购很重要。
对于您而言,您将所有类都写在一个文件中,但是尝试在FormSubmitDirective
类之前使用ControlErrorContainerDirective
和ControlErrorsDirective
,这是造成问题的主要原因。