Angular Material 2 - MatDatePicker错误 - '必须导入MatNativeDateModule / MatMomentDateModule'

时间:2018-03-22 10:51:22

标签: angular datepicker momentjs angular-material2

我正在尝试使用matInput datepicker组件在我的组件控制器中设置日期格式,但是当我尝试加载存在这些组件的页面时,我在控制台中收到以下错误:

  

错误:MatDatepicker:找不到DateAdapter的提供程序。您必须在应用程序根目录中导入以下模块之一:MatNativeDateModule,MatMomentDateModule,或提供自定义实现。

问题是我尝试在我的app模块,主app组件和子组件中包含这个,我试图引用moment()方法,但我仍然得到错误。我也尝试过使用相同结果的MatNativeDateModule。

这是我正在导入的模块依赖项:

import { MatMomentDateModule } from '@angular/material-moment-adapter';

Datepicker元素:

<input matInput [matDatepicker]="invoiceDate" [max]="maxDate" name="date" placeholder="DD/MM/YYYY" formControlName="date">

5 个答案:

答案 0 :(得分:7)

您是否已将其添加到模块的导入中?

import { MatMomentDateModule } from "@angular/material-moment-adapter";

@NgModule({
  /* etc. */
  imports: [ BrowserModule, /* etc. */, MatMomentDateModule, /* etc. */ ],
  /* etc. */
}

我用

安装了它
npm i @angular/material-moment-adapter --save

一切正常。

答案 1 :(得分:5)

Angullar 8,9

    public function ref_money()
{
    $userid = $this->user->id;
    $user = User::where('id', $userid)->first();
    $ref_money = $user->ref_money;

    if($ref_money == 0) {
        return [
            'msg'       => 'You don\'t money have refferals',
            'type'      => 'error'
        ];
    }

   if($ref_money < 320) {
        return [
            'msg'       => 'You need 320 coins on balance to take money',
             'type'      => 'error'
        ];
    } else {
  User::where('id', $user->id)->update([
        'money' => $user->money + $ref_money,
        'ref_money' => $user->ref_money - $ref_money
    ]);
        return [
        'title'       => 'You take '.$this->user->ref_money.' for refferals',
        'success' => true,
        ];
    }   
}

Angular 7及以下

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

您需要在导入下同时导入MatDatepickerModule和MatNativeDateModule,并在提供程序下添加MatDatepickerModule

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

答案 2 :(得分:2)

添加

import { MatMomentDateModule } from "@angular/material-moment-adapter";

并安装

npm i @angular/material-moment-adapter --save

还有依赖

npm i moment --save

答案 3 :(得分:1)

我在MatDatepickerModule和MatNativeDateModule上遇到了类似的错误

  

错误错误:“ MatDatepicker:未找到DateAdapter的提供程序。必须在应用程序根目录下导入以下模块之一:MatNativeDateModule,MatMomentDateModule或提供自定义实现。”

我通过这样做解决了这个问题

import { MatNativeDateModule } from '@angular/material/core';
@NgModule({
    imports:[ MatDatepickerModule, 
MatNativeDateModule],
      providers: [MatNativeDateModule, MatDatepickerModule],

})

答案 4 :(得分:0)

只需将以下两个模块都导入app.module.ts

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

imports: [   
  MatDatepickerModule,
  MatNativeDateModule
]  

就是这样。