角度材料在某些组件中不起作用

时间:2017-07-11 21:59:13

标签: angular typescript angular-material

很抱歉,如果这很难理解,但我很困惑为什么我的代码在某些组件中工作,而不是其他组件。我将MdButtonModule导入到我的app.module.ts文件中,并且能够在app.component.html文件中使用以下代码:

<button md-button>Click Me!</button>

当我在名为shifts.component.html的组件中尝试相同的代码时,它不起作用。 shifts.component.ts导入shifts.module.tsshifts.module.ts导入app.module.ts。事实证明,为了在MdButtonModule中使用Angular Material按钮,我必须将shifts.module.ts导入shifts.component.html。如果我在app.module.ts中导入Angular Material按钮,我不应该在任何组件中使用Angular Material按钮吗?有些事似乎不对。我不理解的是什么?

1 个答案:

答案 0 :(得分:1)

这条信息取自Official Angular Material

第3步:导入组件模块

Import the NgModule for each component you want to use:

import {MdButtonModule, MdCheckboxModule} from '@angular/material';

@NgModule({
  ...
  imports: [MdButtonModule, MdCheckboxModule],
  ...
})
export class PizzaPartyAppModule { }

或者,您可以创建一个单独的NgModule,用于导入将在应用程序中使用的所有Angular Material组件。然后,您可以将此模块包含在您希望使用组件的任何位置。

import {MdButtonModule, MdCheckboxModule} from '@angular/material';

@NgModule({
  imports: [MdButtonModule, MdCheckboxModule],
  exports: [MdButtonModule, MdCheckboxModule],
})
export class MyOwnCustomMaterialModule { }

无论您使用哪种方法,请务必在Angular的BrowserModule之后导入Angular Material模块,因为导入顺序对NgModules很重要。