@ angular/material 2.0.0-beta.11から2.0.0-beta.12にアップグレードした後、以下のエラーが発生しました:
モジュール@ angular/material/materialには、エクスポートされたメンバー 'MdButtonModule'がありません。
TypeScriptコード:
import { MdButtonModule } from '@angular/material';
何が起こった?
C:/dev/my-proj/src/app/app-material/app-material.module.ts(4,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'には、エクスポートされたメンバー' MdButtonModule 'がありません。 c:/dev/my-proj/src/app/app-material/app-material.module.ts(5,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'にはエクスポートされたメンバー' MdCardModule 'がありません。 c:/dev/my-proj/src/app/app-material/app-material.module.ts(6,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'には、エクスポートされたメンバー' MdCheckboxModule 'がありません。 c:/dev/my-proj/src/app/app-material/app-material.module.ts(7,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'にはエクスポートされたメンバー' MdIconModule 'がありません。 c:/dev/my-proj/src/app/app-material/app-material.module.ts(8,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'には、エクスポートされたメンバー' MdOptionModule 'がありません。 c:/dev/my-proj/src/app/app-material/app-material.module.ts(9,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'には、エクスポートされたメンバー' MdProgressSpinnerModule 'がありません。 c:/dev/my-proj/src/app/app-material/app-material.module.ts(10,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'にはエクスポートされたメンバー' MdSelectModule 'がありません。 c:/dev/my-proj/src/app/app-material/app-material.module.ts(11,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'には、エクスポートされたメンバー' MdSidenavModule 'がありません。 c:/dev/my-proj/src/app/app-material/app-material.module.ts(12,3)のエラー:モジュール '"c:/ dev/my-proj/node_modules/@ angular/material/material "'には、エクスポートされたメンバー' MdToolbarModule 'がありません。エラーのエラー:MdButtonModuleは_getNgModuleMetadata(c:\ dev\my-proj\node_modules\@angular\compiler-cli\src\ngtools_impl.js:140:15)のNgModuleではありませんproj\node_modules\@angular\compiler-cli\src\ngtools_impl.js:109:26)at c:\ dev\my-proj\node_modules\@angular\compiler-cli\src\ngtools_impl.js:129:27 at Array.reduce(ネイティブ)で_extractLazyRoutesFromStaticModule(c:\ dev\my-proj\node_modules\@angular\compiler-cli\src\ngtools_impl.js:128:10)at c:\ dev\my-proj\node_modules\@ angle\compiler-cli\src\ngtools_impl.js:129:27 at Array.reduce(native)at _extractLazyRoutesFromStaticModule(c:\ dev\my-proj\node_modules\@angular\compiler-cli\src\ngtools_impl.js:128 :10)Object.listLazyRoutesOfModule(c:\ dev\my-proj\node_modules\@angular\compiler-cli\src\ngtools_impl.js:53:22)at Function.NgTools_InternalApi_NG_2.listLazyRoutes(c:\ dev\my- proj\node_modules\@angular\compiler-cli\src\ngtools_api.js:91:39)at AotPlugin._getLazyRoutesFromNgtools(c:\ dev\my-proj\node_modules\@ngtools\webpack\src\plugin.js:207:44)at _donePromise.Promise.resolve.then.then.then.then.then(c:\ dev\my-proj\node_modules\@ngtools\webpack\src\plugin.js:443:24)
MatButtonModule
の代わりにMdButtonModule
を含める必要があります。また、テンプレートのプレフィックスを更新する必要があります。つまり、md-button
はmat-button
。アプリ全体のプレフィックスを更新するには、このPrefix Updaterのガイドラインに従ってください。
2.0.0-beta.12
Md
プレフィックスは削除されました。すべての場所でMat
プレフィックスを使用する必要があります。 [〜#〜] changelog [〜#〜] of 2.0.0-beta.11
:
Beta.11については、「md」プレフィックスを完全に廃止し、前進する「mat」を使用することを決定しました。これは、すべてのクラス名、プロパティ、入力、出力、セレクターに影響します(CSSクラスは2月に変更されました)。 「md」プレフィックスは、次のベータリリースで削除されます。
そして、 [〜#〜] changelog [〜#〜] of 2.0.0-beta.12
:
Breaking Changesすべての「md」プレフィックスが削除されました。
この作業を参照してください StackBlitz demo 個々のマテリアルモジュールで、Mat
プレフィックスを使用します。
Import-directiveで置き換えます
import { MatButtonModule } from '@angular/material';
MdSomethingModule
命名規則 beta.11では非推奨 、およびbeta.12では 完全に置き換えられました はMatSomethingModule
によって。
Angular Material 2 Beta 3の前は、アプリケーションモジュールにインポートしてコンポーネントを使用可能にするグローバルMaterialModuleがありました。未使用のコードをすべて削除します。
そのため、必要なコンポーネントのみをインポートおよびエクスポートするプロジェクト固有のカスタムマテリアルモジュールを定義するため、MaterialModuleは廃止されました。モジュールは次のようになります。
import { NgModule } from '@angular/core';
import {
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
} from '@angular/material';
@NgModule({
imports: [
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
],
exports: [
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
]
})
export class MaterialModule {}
次に、このモジュールをルートアプリモジュールにインポートします。
MaterialModuleをインポートし、インポートに追加します。モジュールのアニメーションに必要なものもインポートする必要があります。アプリモジュール(例:app.module.ts)は、次のようになります。
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { MaterialModule } from './material.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
MaterialModule,
BrowserAnimationsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
angular material here https://alligator.io/angular/angular-material-2/ の使用に関する詳細情報を見つけることができます。
Mdの代わりにMatプレフィックスを使用します。例えば
import { MatButtonModule, MatCheckboxModule } from '@angular/material'
働いていたが、import { MdButtonModule, MdCheckboxModule } from '@angular/material'
エラーを取得