我正在将购买的第三方模板转换为Angular 5应用程序,并且遇到了错误.我对Angular 5很新(但我知道AngularJS很好)并且不明白它试图告诉我什么?它似乎与显示/隐藏顶部导航栏的按钮有关.
错误消息(来自浏览器):
Error: Template parse errors:
No provider for ControlContainer ("imalize-styl-2 btn btn-primary " (click)="toggleNavigation()"><i class="fa fa-bars"></i> </a>
[ERROR ->]<form role="search" class="navbar-form-custom" method="post" action="#">
<div class="form-gro"): ng:///AppModule/TopNavigationNavbarComponent.html@4:6
Run Code Online (Sandbox Code Playgroud)
component.html:
<div class="row border-bottom">
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header">
<a class="minimalize-styl-2 btn btn-primary " (click)="toggleNavigation()"><i class="fa fa-bars"></i> </a>
<form role="search" class="navbar-form-custom" method="post" action="#">
<div class="form-group">
<input type="text" placeholder="Search for something..." class="form-control" name="top-search" id="top-search">
</div>
</form>
</div>
<ul class="nav navbar-top-links navbar-right">
<li>
<a href="#">
<i class="fa fa-sign-out"></i> Log out …Run Code Online (Sandbox Code Playgroud) 我创建了一个带有表单的 Ionic 应用程序。没什么特别的(代码如下)。在我添加表单并使用表单组和其他东西之前,它工作得很好。当我开始添加表单组和所有连接的东西时,我收到此错误:
\n\n\n\n\ncore.js:6260 错误错误:未捕获(承诺中):错误:NodeInjector:\n NOT_FOUND [ControlContainer] 错误:NodeInjector: NOT_FOUND\n [ControlContainer]\n 位于 getOrCreateInjectable (core.js:5894)\n 模块处。 \xc9\xb5\xc9\xb5directiveInject (core.js:21115)\n 在 NodeInjectorFactory.NgControlStatusGroup_Factory [作为工厂] (forms.js:1073)\n 在 getNodeInjectable (core.js:6025)\n 在 instantiateAllDirectives (core. js:12953)\n 在 createDirectivesInstances (core.js:12169)\n 在 \xc9\xb5\xc9\xb5elementStart (core.js:21298)\n 在 EditPage_Template (template.html:18)\n 在executeTemplate (core) .js:12129)\ n在renderView(core.js:11899)\ n在resolvePromise(zone-evergreen.js:798)\ n在resolvePromise(zone-evergreen.js:750)\ n在zone-evergreen.js :860\n 在 ZoneDelegate.invokeTask (zone-evergreen.js:399)\n 在 Object.onInvokeTask (core.js:41640)\n 在 ZoneDelegate.invokeTask (zone-evergreen.js:398)\n 在区域。 runTask (zone-evergreen.js:167)\n 在rainMicroTaskQueue (zone-evergreen.js:569)
\n
我尝试了在网上找到的东西:\n从文件 app.module.ts 中的 @angular/forms 导入 Forms Module 和 ReactiveFormsModule
\n\n这对我不起作用,并且我不断收到错误。
\n\n我在 SO 上找到并尝试过的链接,但没有成功:
\n\n我有一个根据本文制作的自定义输入:medium.com:dont-reinvent-the-wheel。
\n这是我的代码,它处于严格模式 \xe2\x96\xbc
\n// input.component.ts\n\nimport { Component, Input, ViewChild } from \'@angular/core\';\nimport {\n ControlContainer,\n ControlValueAccessor,\n FormControl,\n FormControlDirective,\n NG_VALUE_ACCESSOR\n} from \'@angular/forms\';\nimport {\n FloatLabelType,\n MatFormFieldAppearance\n} from \'@angular/material/form-field\';\n\n@Component({\n selector: \'app-input\',\n templateUrl: \'./input.component.html\',\n styleUrls: [\'./input.component.scss\'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: InputComponent,\n multi: true\n }\n ]\n})\nexport class InputComponent implements ControlValueAccessor {\n isDisabled!: boolean;\n\n @Input() isRequired!: boolean;\n\n @Input() label!: string;\n\n @Input() placeholder!: string;\n\n @Input() readonly!: boolean;\n\n @Input() appearance: MatFormFieldAppearance = \'fill\';\n\n @Input() floatLabel: FloatLabelType = \'auto\';\n\n @ViewChild(FormControlDirective, { static: true })\n …Run Code Online (Sandbox Code Playgroud) angular angular-reactive-forms controlvalueaccessor angular-controlvalueaccessor