2017-09-21 16 views
1

が見つかりません、I:アンギュラ材質日付ピッカー - エラー:MdDatepicker:いいえプロバイダがマテリアルのドキュメントに続きDateAdapter

import {MdDatepickerModule} from '@angular/material'; 
ルートモジュールで

とプロバイダのリストにそれを追加しましたが、テンプレート内で使用coudln't。このエラーを得た:

Uncaught (in promise): Error: MdDatepicker: No provider found for DateAdapter. You must import one of the following modules at your application root: MdNativeDateModule, or provide a custom implementation.

ので、それによると、私は最後のインポートを削除して、コメントを追加しました:

import {MdNativeDateModule} from '@angular/material'; 

をそして、それが動作するようになりました、見えます。マテリアル担当者がMdDatepickerModuleをインポートするよう指示するが、MdNativeDateModuleをインポートしない理由そして彼らはどう違うのですか?

答えて

6

The example in the docs実際にインポートしますMdNativeDateModule。 plunkerリンクをクリックし、main.tsファイルを参照してください。ドキュメントはこれほど明確ではありません。

MdDatepickerModuleは、コンポーネント自体を含むモジュールです。このコンポーネントは、使用する日付の実装には無関係です。

たとえば、JavaScriptのネイティブDateオブジェクトの代わりにMoment.JS datesを使用する場合は、Moment.JSオブジェクトを操作する独自のクラスを作成できます。これはhereと説明されています。

JavaScriptのDateオブジェクトを使用したい場合は、既に@angular/materialに含まれているNativeDateAdapterクラスを使用する必要があります。このクラスはMdNativeDateModuleによって提供されています。

MdDatepickerModuleで提供されているわけではありません。そのモジュールはUIコンポーネントのみを扱うため、Moment.JSオブジェクトを使用している場合はアプリケーションのNativeDateAdapterクラスは不要です。

+4

モジュール名が更新されました - "MatNativeDateModule" –

関連する問題