我正在尝试使用Angular Material设计,但我一直遇到这个错误
Can't bind to 'mdDatepicker' since it isn't a known property of 'input'.
我正在关注this documentation安装MD。
我已将以下内容导入app.module.ts
/* Material Design */
import { MdDatepickerModule, MdNativeDateModule } from "@angular/material";
并将其添加到@NgModule
@NgModule({
imports:
[
...
BrowserModule,
BrowserAnimationsModule,
HttpModule,
/* Material Design */
MdDatepickerModule,
MdNativeDateModule,
],
在我的组件模板中,我只是复制粘贴了示例的代码
<md-form-field>
<input mdInput [mdDatepicker]="picker" placeholder="Choose a date">
<md-datepicker-toggle mdSuffix [for]="picker"></md-datepicker-toggle>
<md-datepicker #picker></md-datepicker>
</md-form-field>
我在component.ts文件中没有做任何特别的事情
import { Component, Input, Output, EventEmitter } from "@angular/core";
import { TranslationPipe } from "../../../pipes";
@Component({
selector: "date-picker",
templateUrl: "./date-picker.component.html",
styleUrls: ["./date-picker.component.scss"],
})
export class DatePickerComponent {
@Input()
date;
constructor(
private translationPipe: TranslationPipe,
) {
}
}
我被困在这里,我找不到任何解决方案。我发现的唯一解决方案是Can't bind to 'mdDatepicker' since it isn't a known property of 'input' - Angular,但正如您所看到的,我实施了它并且它对我没有帮助。
我猜我正在看某事,或者我错过了一步?
提前致谢
答案 0 :(得分:3)
指令需要列在使用它们的模块的imports: [...]
中。
@NgModule({
imports:
[
MdDatepickerModule,
MdNativeDateModule,
]
}
export class SharedModule {
在AppModule
中导入它们只会使directives: [...]
AppModule
中列出的组件中可用,但不在其他地方。
答案 1 :(得分:0)
使用新版本的angular4 datepicker,语法更改为以下代码:
启动DatePicker模块:
<mat-input-container>
<input matInput [matDatepicker]="picker" placeholder="Choose A Date:"><br/><br/>
<mat-datepicker-toggle mdSuffix [for]="picker"></mat-datepicker-toggle>
</mat-input-container>
<mat-datepicker #picker></mat-datepicker>
这对我有用,并且能够在UI中看到输出。