Tod*_*vis 15 angular-components angular angular-forms angular5
我正在将购买的第三方模板转换为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
</a>
</li>
</ul>
</nav>
</div>
Run Code Online (Sandbox Code Playgroud)
component.ts
import { Component, OnInit } from '@angular/core';
import { smoothlyMenu } from '../../../app.helpers';
declare var jQuery: any;
@Component({
selector: 'app-top-navigation-navbar',
templateUrl: './top-navigation-navbar.component.html',
styleUrls: ['./top-navigation-navbar.component.less']
})
export class TopNavigationNavbarComponent implements OnInit {
toggleNavigation(): void {
jQuery('body').toggleClass('mini-navbar');
smoothlyMenu();
}
constructor() { }
ngOnInit() {
}
}
Run Code Online (Sandbox Code Playgroud)
app.module.ts(当我谷歌这个时,这似乎是一个很多提到的东西,但不是表格抛出错误.)
...
import { ReactiveFormsModule, FormControl, FormsModule } from '@angular/forms';
...
Run Code Online (Sandbox Code Playgroud)
Tod*_*vis 12
我不确定为什么错误似乎指向表单元素之外的锚标记,但它是导致错误的表单元素.将FormGroup添加到表单修复了问题.
<form role="search" class="navbar-form-custom" [formGroup]="form">
Run Code Online (Sandbox Code Playgroud)
Gov*_*row 11
文件中的Import FormsModule和ReactiveFormsModule views.module.ts适用于我:
views.module.ts
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
CommonModule,
RouterModule,
FormsModule,
ReactiveFormsModule,
...
],
declarations: [
...
],
exports: [
...
],
schemas: [NO_ERRORS_SCHEMA]
})
export class ViewsModule { }
Run Code Online (Sandbox Code Playgroud)
小智 10
编辑文件“app.module.ts”;更改以下指令:
import { ReactiveFormsModule } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
具有以下内容:
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
更改以下代码段:
imports: [
BrowserModule,
ReactiveFormsModule
],
Run Code Online (Sandbox Code Playgroud)
具有以下内容:
imports: [
BrowserModule,
ReactiveFormsModule,
FormsModule
],
Run Code Online (Sandbox Code Playgroud)
如果您尝试从 Angular 组件显示纯 HTML 表单,请使用像这样的ngNoFormin<form>标记。
<form ngNoForm>
...
</form>
Run Code Online (Sandbox Code Playgroud)
这应该可以防止 Angular 抛出控制容器错误。
| 归档时间: |
|
| 查看次数: |
21416 次 |
| 最近记录: |