Подтвердить что ты не робот

Нет провайдера для ControlContainer - Угловой 5

Я конвертирую купленный, сторонний шаблон в приложение 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/[email protected]:6

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>

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() {
  }

}

app.module.ts (это, кажется, что-то много упоминается, когда я говорю об этом Google, однако это не ошибка, создающая ошибку).

...
import { ReactiveFormsModule, FormControl, FormsModule } from '@angular/forms';
...
4b9b3361

Ответ 1

импортировать FormsModule в дополнение к ReactiveFormsModule

Ответ 2

Я не уверен, почему ошибка, кажется, указывает на тег привязки вне элемента формы, но это был элемент формы, который вызывал ошибку. Добавление FormGroup в форму устранило проблему.

<form role="search" class="navbar-form-custom" [formGroup]="form">

Ответ 3

Импорт FormsModule и ReactiveFormsModule в views.module.ts (файл модуля custome) работает для меня:

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 { }