我正在使用Angular 2.当我尝试导入“@ angular / material”时,我收到了错误。我正在导入类似的包:
import {MdDialog} from "@angular/material";
import {MdDialogRef} from "@angular/material";
我的tsconfig.json文件如:
{
"compilerOptions": {
"baseUrl": "",
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es6", "dom"],
"mapRoot": "./",
"module": "es6",
"moduleResolution": "node",
"outDir": "../dist/out-tsc",
"sourceMap": true,
"target": "es5",
"typeRoots": [
"../node_modules/@types"
]
}
}
我的package.json代码:
{
"name": "rmc-temporary",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"start": "ng serve",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update",
"e2e": "protractor"
},
"private": true,
"dependencies": {
"@angular/common": "2.2.1",
"@angular/compiler": "2.2.1",
"@angular/core": "2.2.1",
"@angular/forms": "2.2.1",
"@angular/http": "2.2.1",
"@angular/platform-browser": "2.2.1",
"@angular/platform-browser-dynamic": "2.2.1",
"@angular/router": "3.2.1",
"core-js": "^2.4.1",
"rxjs": "5.0.0-beta.12",
"ts-helpers": "^1.1.1",
"zone.js": "^0.6.23"
},
"devDependencies": {
"@angular/compiler-cli": "2.2.1",
"@types/jasmine": "2.5.38",
"@types/node": "^6.0.42",
"angular-cli": "1.0.0-beta.21",
"codelyzer": "~1.0.0-beta.3",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-remap-istanbul": "^0.2.1",
"protractor": "4.0.9",
"ts-node": "1.2.1",
"tslint": "3.13.0",
"typescript": "~2.0.3",
"webdriver-manager": "10.2.5"
}
}
答案 0 :(得分:27)
按照以下步骤开始使用Angular Material。
第1步:安装Angular Material
npm install --save @angular/material
第2步:动画
某些Material组件依赖于Angular动画模块,以便能够执行更高级的过渡。如果您希望这些动画在您的应用中运行,则必须安装@angular/animations
模块并在应用中包含BrowserAnimationsModule。
npm install --save @angular/animations
然后
import {BrowserAnimationsModule} from '@angular/platform browser/animations';
@NgModule({
...
imports: [BrowserAnimationsModule],
...
})
export class PizzaPartyAppModule { }
第3步:导入组件模块
为您要使用的每个组件导入NgModule:
import {MdButtonModule, MdCheckboxModule} from '@angular/material';
@NgModule({
...
imports: [MdButtonModule, MdCheckboxModule],
...
})
export class PizzaPartyAppModule { }
请务必在Angular的BrowserModule之后导入Angular Material模块,因为导入顺序对NgModules很重要
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {MdCardModule} from '@angular/material';
@NgModule({
declarations: [
AppComponent,
HeaderComponent,
HomeComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
MdCardModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
第4步:加入主题
将所有核心和主题样式应用于您的应用程序需要包含主题。
要开始使用预建主题,请在您应用的index.html中添加以下内容:
<link href="../node_modules/@angular/material/prebuilt-themes/indigo-pink.css" rel="stylesheet">
答案 1 :(得分:4)
答案 2 :(得分:3)
这就是我解决这个问题的原因。
我用过:
answer
但在应用程序中加入文件夹。
来源: https://medium.com/@ismapro/first-steps-with-angular-cli-and-angular-material-5a90406e9a4
答案 3 :(得分:1)
发现了这个帖子:角度9中的“重大更改”。必须分别导入所有模块。由于@ jeff-gilliland,这里还有一个很好的模块: https://stackoverflow.com/a/60111086/824622
答案 4 :(得分:1)
import {MatButtonModule} from '@angular/material/button';
答案 5 :(得分:1)
这些答案都不适合我。由于我以前在使用 reactjs 时遇到过无法运行节点模块的情况,因此我删除了 node_modules 文件夹并再次执行 npm install
。然后,我没有使用 import { MatTableModule } from '@angular/material'
,而是像这样导入模块 import { MatTableModule } from '@angular/material/table'
。这对我有用:-)。
答案 6 :(得分:0)
我遵循了这里的每个建议(我正在使用Angular 7),但是没有任何效果。我的应用程序拒绝承认@ angular / material存在,因此在此行显示错误:
import { MatCheckboxModule } from '@angular/material';
即使我使用了--save
参数将Angular Material添加到我的项目中,也是如此:
npm install --save @angular/material @angular/cdk
...它拒绝向我的“ package.json
”文件中添加任何内容。
我什至尝试删除package-lock.json
文件,因为有些文章认为这会引起问题,但这没有效果。
要解决此问题,我必须手动将这两行添加到我的“ package.json
”文件中。
{
"devDependencies": {
...
"@angular/material": "~7.2.2",
"@angular/cdk": "~7.2.2",
...
我不知道这是与使用Angular 7有关的问题,还是已经存在多年了......
答案 7 :(得分:0)
只需使用 [ng add @angular/material][1]
和 yes 添加动画并添加到环境中。您还可以选择 Angular Material 主题。此单个命令将添加所需的所有依赖项和声明。
参考Angular Material Guide Getting Started
答案 8 :(得分:0)
return(
bla bla bla (...)
{firstName.length === 0 && <InfoTable items={dummyData} />
{firstName.length > 0 && <InfoTable items={dummyData.filter((obj) => {
return obj.firstName.includes(firstName)})
}
);
npm install @angular/material
import {MatDialogModule} from "@angular/material/dialog";
第 4 步:在组件上导入: @NgModule({
imports: [
CommonModule,
MatDialogModule
]
第 5 步:使用弹出对话框
import { MatDialog} from '@angular/material/dialog';
答案 9 :(得分:-2)
并享受{{Angular}}