我偶然发现了一个问题,即我的组件中的属性无法识别。 这是我的组成部分:
import { PrecisionDate } from '../../domain/precision-date';
import { Component, Input } from '@angular/core';
import { FormControl } from '@angular/forms';
import { DatePrecisionType } from '../../domain/date-precision.type';
import { ValueRange } from '../../domain/value-range';
@Component({
selector: 'date-control',
templateUrl: './date-control.component.html',
styleUrls: ['./date-control.component.css'],
})
export class DateControlComponent {
@Input() precision: DatePrecisionType;
@Input() dateRange: ValueRange<Date>;
@Input() formControlToUse: FormControl;
constructor() {}
get between(): ValueRange<PrecisionDate> {
return {
min: this.dateRange ? new PrecisionDate(this.dateRange.min) : null,
max: this.dateRange ? new PrecisionDate(this.dateRange.max) : null,
}
}
}
这就是抛出的错误:
Uncaught Error: Template parse errors:
Can't bind to 'between' since it isn't a known property of 'date-input'.
1. If 'date-input' is an Angular component and it has 'between' input, then verify that it is part of this module.
2. If 'date-input' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("<date-input [ERROR ->][between]="between" [precision]="precision" [formControl]="formControlToUse" > </date-input> "): ng:///UiControlsLibraryModule/DateControlComponent.html@0:15
我知道只有es5支持getter和setter。但是,es5被定义为我的tsconfig.json中的目标。
非常感谢任何帮助:)
答案 0 :(得分:3)
错误来自您的html模板。您似乎正在尝试使用未在组件中定义的@Input
。
在您的date-input
组件中,您需要在html中添加@Input() between
或删除[between]="..."
。
编辑。另外,请检查date-input
是否为某个组件,或者date-control
与date-input
混淆了错误:)。
编辑2.看看你的第三个错误点。
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("<date-input [ERROR ->][between]="between" [precision]="precision" [formControl]="formControlToUse" > </date-input> "): ng:///UiControlsLibraryModule/DateControlComponent.html@0:15
滚动一下,有一个指针(寻找此符号[ERROR ->]
),其中发生错误,这是我喜欢棱角分明的原因之一,他们可以指出错误的原因(大多数情况下是当然):)。
编辑3.我忘了丢失的@Input
可以是@Directive
输入的一部分,而不仅仅是组件:)。