无法绑定到'matDatepicker',因为它不是'input'的已知属性 - Angular

edk*_*ked 32 angular-material angular-material2 angular

我刚刚复制并粘贴了datePicker和输入的角度材料代码,但是我收到了datePicker的这个错误.

app.module

import {MaterialModule} from '@angular/material';
@NgModule({
imports: [
...
MaterialModule
]
Run Code Online (Sandbox Code Playgroud)
<md-input-container>
    <input mdInput placeholder="Rechercher" [(ngModel)]="filterHistorique">
</md-input-container>

<md-input-container>
    <input mdInput [mdDatepicker]="picker" placeholder="Choose a date">
    <button mdSuffix [mdDatepickerToggle]="picker"></button>
</md-input-container>
<md-datepicker #picker></md-datepicker>
Run Code Online (Sandbox Code Playgroud)

这是我在浏览器中出现的错误:

无法绑定到'mdDatepicker',因为它不是'input'的已知属性如果'md-datepicker'是Angular组件,则验证它是否是此模块的一部分.2.如果'md-datepicker'是Web组件,则将"CUSTOM_ELEMENTS_SCHEMA"添加到此组件的'@NgModule.schemas'以禁止显示此消息.("[错误 - >]

错误是针对datepicker,当我删除它时,错误消失

Pen*_*gyy 40

使用时mat-datepicker,您也必须导入MatDatepickerModule,也MatNativeDateModule建议也可以导入.看到这里的文档.

import { MaterialModule, MatDatepickerModule, MatNativeDateModule } from '@angular/material';
@NgModule({
  imports: [
    ...
    MaterialModule,            // <----- this module will be deprecated in the future version.
    MatDatepickerModule,        // <----- import(must)
    MatNativeDateModule,        // <----- import for date formating(optional)
    MatMomentDateModule         // <----- import for date formating adapted to more locales(optional)
  ]
Run Code Online (Sandbox Code Playgroud)

有关日期格式化的可选模块,请参阅材料团队的DateAdapter模块.

提及:请避免使用MaterialModule它将来会被弃用.

  • 还要确保你要添加`[matDatepicker]`,而不是`[matDatePicker]`.不要问我怎么知道这个. (4认同)
  • 我需要将我的 @angular/material 模块更新到目前的最新版本,当我导入它时,我的 IDE 找不到 `MdDatePickerModule` 。我想,一旦完成,我的问题就会解决 (2认同)

Sha*_*mor 7

你需要导入FormsModuleReactiveFormsModule如果你使用了 NgModule 和 formgroup。所以你的 app.module 应该是这样的

import {MaterialModule} from '@angular/material';
@NgModule({
  imports: [
    MdDatepickerModule,        
    MdNativeDateModule,
    FormsModule,
    ReactiveFormsModule
  ]
Run Code Online (Sandbox Code Playgroud)

注意:MaterialModule 已删除。请改用单独的模块。像 MdDatepickerModule看到这里https://github.com/angular/material2/blob/master/CHANGELOG.md#200-beta11-carapace-parapet-2017-09-21


小智 7

要在应用程序中使用,请在app.module.ts ( ) 文件MatDatePicker中添加以下行:or the current module your component/page belongs to

  1. import MatDatepickerModuleMatNativeDateModule在您的 app.module.ts 中。
import { MatDatepickerModule, MatNativeDateModule } from '@angular/material';
Run Code Online (Sandbox Code Playgroud)

对于 Angular 10.x 独立导入它们

import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatNativeDateModule } from '@angular/material/core';
Run Code Online (Sandbox Code Playgroud)
  1. 在导入导出数组中的MatDatepickerModule@NgModuleMatNativeDateModule下添加,
@NgModule ({
           imports: [
               MatDatepickerModule,
               MatNativeDateModule 
           ],
           exports: [
               MatDatepickerModule, 
               MatNativeDateModule 
           ]
       })
Run Code Online (Sandbox Code Playgroud)


小智 5

在最新版本的 Angular Material 中,您必须MatDatepickerModule@angular/material/datepicker本例中导入,并MatNativeDateModule@angular/material/core.

import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatNativeDateModule } from '@angular/material/core';

 @NgModule ({
   imports: [
    MatDatepickerModule,
    MatNativeDateModule
   ]
 })
Run Code Online (Sandbox Code Playgroud)