2017-09-12 161 views
2

我试图使用日期选择器。我对复选框或单选按钮没有任何问题。但是,当我尝试并添加日期选择器,我总是得到这个错误:角度材料日期选择器不适用于我

Error: Template parse errors: Can't bind to 'htmlFor' since it isn't a known property of 'md-datepicker-toggle'

我app.module.ts文件

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { MdButtonModule, 
    MdCheckboxModule, 
    MdCardModule, 
    MdRadioModule, 
    MdDatepickerModule } from '@angular/material'; 

import { AppComponent } from './app.component'; 
import { WeekControlComponent } from './week-control.component'; 

@NgModule({ 
declarations: [ 
    AppComponent, 
    WeekControlComponent 
], 
imports: [ 
    BrowserModule, 
    FormsModule, 
    MdButtonModule, 
    MdCheckboxModule, 
    MdCardModule, 
    MdRadioModule, 
    MdDatepickerModule 
], 
providers: [], 
bootstrap: [AppComponent] 
}) 
export class AppModule { } 

而且我有一个WeekControlComponent:

HTML
<input mdInput [mdDatepicker]="picker" placeholder="Choose a date"> 
<md-datepicker-toggle mdSuffix [for]="picker"></md-datepicker-toggle> 
<md-datepicker #picker></md-datepicker> 
TS
import { Component, OnInit } from '@angular/core'; 

    @Component({ 
    selector: 'app-week-control', 
    templateUrl: './week-control.component.html', 
    styleUrls: ['./week-control.component.css'] 
    }) 
    export class WeekControlComponent implements OnInit { 

    constructor() { } 

    ngOnInit() { 
    } 
    } 

我COPIE d直接从angular.io材质示例页面查看示例。我不明白为什么它不工作。有人可以帮我吗?

+0

我有一个工作plunker [这里](https://plnkr.co/edit/NWIq75PQM4l7awHLygDq?p=preview),我为答案[这里](https://stackoverflow.com/a/46159653)。也许它会帮助:) – BogdanC

回答

2

只需安装最新的角度依赖关系。即

"@angular/animations": "4.3.0", 
"@angular/cdk": "^2.0.0-beta.10", 
"@angular/common": "4.3.0", 
"@angular/compiler": "4.3.0", 
"@angular/core": "4.3.0", 
"@angular/forms": "4.3.0", 
"@angular/http": "4.3.0", 
"@angular/material": "^2.0.0-beta.10", 
"@angular/platform-browser": "4.3.0", 
"@angular/platform-browser-dynamic": "4.3.0", 
"@angular/platform-server": "4.3.0", 
"@angular/router": "4.3.0" 

devDependencies: 
"@angular/compiler-cli": "4.3.0" 

并测试你的代码。这对我来说可以。

+0

我使用的材料“2.0.0-beta.8”,当我更新到“2.0.0-beta.10”它的工作,谢谢。 – Curtis

2

如果您使用的材料版本2.0.0-beta.8那么你需要做以下修改: -

  1. HTML文件中

    <md-input-container> 
    <input mdInput [mdDatepicker]="picker" placeholder="Choose a date"> 
    <button mdSuffix [mdDatepickerToggle]="picker"></button> 
    </md-input-container> 
    <md-datepicker #picker></md-datepicker> 
    

2更换代码。再添加一个模块中app.module即MdNativeDateModule

import { MdButtonModule, 
MdCheckboxModule, 
MdCardModule, 
MdRadioModule, 
MdDatepickerModule, 
MdNativeDateModule } from '@angular/material'; 


imports: [ 
    BrowserModule, 
FormsModule, 
MdButtonModule, 
MdCheckboxModule, 
MdCardModule, 
MdRadioModule, 
MdDatepickerModule, 
MdNativeDateModule 

],

+0

当我尝试你的代码时,我得到了错误,并且使用2.0.0-beta.8未能识别md-input-container。当我更新到2.0.0-beta.10时,我得到了一个关于没有mdDatepickerToggle绑定按钮的错误。但更新angular.io官方示例后开始工作。 – Curtis

+0

要使它在角度材质-2.0.0-beta.8中工作,请添加“MdInputModule”。 – Kriti

+1

它适合我。非常感谢。 –

相关问题