Javascript ';垫形式字段';不是已知元素

Javascript ';垫形式字段';不是已知元素,javascript,angular,angular-material2,Javascript,Angular,Angular Material2,目前我有一个x.component.html,其中包含以下内容(使用): 但问题是,如果尝试在浏览器中访问,我会收到以下错误消息(这只是一个摘录): 如果我正确理解,我不知何故/在什么地方遗漏了mat-…标记的定义,但我不知道我需要将什么样的定义放在哪里?有人能给我一点启发吗 更新(1): 安装jquery并更改.angular cli.json文件后,错误消息已按预期更改,以消除jquery问题,如下所示: ncaught错误:模板分析错误: “mat form field”不是已知元素: 1

目前我有一个
x.component.html
,其中包含以下内容(使用):

但问题是,如果尝试在浏览器中访问,我会收到以下错误消息(这只是一个摘录):

如果我正确理解,我不知何故/在什么地方遗漏了
mat-…
标记的定义,但我不知道我需要将什么样的定义放在哪里?有人能给我一点启发吗

更新(1): 安装jquery并更改
.angular cli.json
文件后,错误消息已按预期更改,以消除jquery问题,如下所示:

ncaught错误:模板分析错误: “mat form field”不是已知元素: 1.如果“mat form field”是一个角度组件,则确认它是该模块的一部分。 2.如果“mat form field”是一个Web组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到此组件的“@NgModule.schemas”以抑制此消息。(”

更新(3):

因此,在修复app.routing.module.ts后,如下所示:

从'@angular/core'导入{NgModule};
从'@angular/router'导入{RouterModule,Routes};
从“./user/user.component”导入{UserComponent};
从“./user/add user.component”导入{AddUserComponent};
从“./x/x.component”导入{XComponent};
常数路由:路由=[
{path:'users',component:UserComponent},
{path:'add',component:AddUserComponent},
{路径:'x',组件:XComponent}
];
@NGD模块({
进口:[
RouterModule.forRoot(路由)
],
出口:[
路由模块
],
声明:[]
})
导出类AppRoutingModule{}
我又前进了一步,得到了这个:

ERROR Error: Uncaught (in promise): Error: StaticInjectorError[XService]: 
  StaticInjectorError[XService]: 
    NullInjectorError: No provider for XService!
Error: StaticInjectorError[XService]: 
  StaticInjectorError[XService]: 
    NullInjectorError: No provider for XService
安装jquery

npm安装jquery

    "../node_modules/jquery/dist/jquery.min.js",
将此行添加到angular-cli.json中的“scripts”:[]中

现在检查您的模块

MatTableModule
MatFormModule
导入到您的模块中

更新

在xcomponent中替换

  @Component({
      selector: 'x-component',
      styleUrls: ['x.component.css'],
      templateUrl: 'x.component.html',
       providers:[xService] // need to set provider
    })

您需要在app.module.ts中导入以下内容:

import {MatInputModule} from '@angular/material/input';
import {MatTableModule} from '@angular/material/table';
import {FormsModule} from '@angular/forms';
import {MatInputModule} from '@angular/material/input';

...

@NgModule({
  ...,
  imports: [
    ...,
    MatInputModule,
    ...
  ],
  ...
})
export class AppModule { }
在您的x.component.ts中:

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

不可能将jquery作为角度材质的依赖项。 jquery和angular
mat表单字段的问题是两个独立的问题

您似乎安装了Bootstrap的主题,这需要jquery。 所以安装jquery
npm安装jquery——保存

添加键入:
npm安装--save dev@types/jquery

    "../node_modules/jquery/dist/jquery.min.js",
并将脚本添加到angular-cli.json:

"apps": [{
  ...
  "scripts": [
    "../node_modules/jquery/dist/jquery.min.js",
  ],
  ...
}]
要解决
mat表单字段
问题,您需要在app.module.ts中导入此模块:

import {MatInputModule} from '@angular/material/input';
import {MatTableModule} from '@angular/material/table';
import {FormsModule} from '@angular/forms';
import {MatInputModule} from '@angular/material/input';

...

@NgModule({
  ...,
  imports: [
    ...,
    MatInputModule,
    ...
  ],
  ...
})
export class AppModule { }

处理角度材质导入的一种方便方法是为材质组件创建自定义模块:

是否安装了Jquery?看起来不是这样。问题是如何将其添加到项目中?不幸的是,我不能完全归功于一个人来解决问题。这是一个很好的社区解决方案示例。感谢你们所有人…但你们到底为什么需要Bootstrap和Angular Material在一起?你们可以选择其中一个,而不是两个!好的,这意味着我可以删除Bootstrap…好的..谢谢提示..我在@NgModule中错过了MatInputModule和MatTableModule的两个条目。每个答案都让我更进一步了…谢谢。我不得不说,组合每个答案中的n个都带来了解决方案。现在我的应用程序启动了。好的,出现了不同的问题。这也可以工作,而不是在
App.module.ts
中定义它。谢谢。
import {MatInputModule} from '@angular/material/input';

...

@NgModule({
  ...,
  imports: [
    ...,
    MatInputModule,
    ...
  ],
  ...
})
export class AppModule { }