СИТУАЦИЯ:
Пожалуйста помоги! Я пытаюсь сделать то, что должно быть очень простой формой в моем приложении Angular2, но независимо от того, что оно никогда не работает.
УГЛОВАЯ ВЕРСИЯ:
Угловой 2.0.0 Rc5
ОШИБКА:
Can't bind to 'formGroup' since it isn't a known property of 'form'
КОД:
Вид:
<form [formGroup]="newTaskForm" (submit)="createNewTask()">
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" required>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
Контроллер:
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';
import {FormsModule,ReactiveFormsModule} from '@angular/forms';
import { Task } from './task';
@Component({
selector: 'task-add',
templateUrl: 'app/task-add.component.html'
})
export class TaskAddComponent {
newTaskForm: FormGroup;
constructor(fb: FormBuilder)
{
this.newTaskForm = fb.group({
name: ["", Validators.required]
});
}
createNewTask()
{
console.log(this.newTaskForm.value)
}
}
Модуль ngModule:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { routing } from './app.routing';
import { AppComponent } from './app.component';
import { TaskService } from './task.service'
@NgModule({
imports: [
BrowserModule,
routing,
FormsModule
],
declarations: [ AppComponent ],
providers: [
TaskService
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
ВОПРОС:
Почему я получаю эту ошибку?
Я что-то пропустил?
источник
FormsModule
иReactiveFormsModule
. Я отредактирую свой ответ.ReactiveFormsModule
в список провайдеров и все заработало. Не уверен, если это так, как вы должны это сделать.Angular 4 в сочетании с функциональными модулями (если вы, например, используете разделяемый модуль) требует также экспорта в
ReactiveFormsModule
работу.источник
Хорошо, после некоторого поиска я нашел решение для «Не могу связать с« formGroup », так как это не известное свойство« формы »».
Для моего случая я использовал несколько файлов модулей, я добавил ReactiveFormsModule в app.module.ts
Но это не сработало, когда я использую директиву [formGroup] из компонента, добавленного в другой модуль, например, используя [formGroup] в author.component.ts, который подписан в файле author.module.ts:
Я думал, что если я добавлю ReactiveFormsModule в app.module.ts, по умолчанию ReactiveFormsModule будет наследоваться всеми его дочерними модулями, такими как author.module, в этом случае ... (неправильно!). Мне нужно было импортировать ReactiveFormsModule в author.module.ts, чтобы заставить работать все директивы:
Итак, если вы используете субмодули, обязательно импортируйте ReactiveFormsModule в каждый файл субмодуля. Надеюсь, это кому-нибудь поможет.
источник
Я столкнулся с этой ошибкой во время модульного тестирования компонента (только во время тестирования, в приложении он работал нормально). Решением является импорт
ReactiveFormsModule
в.spec.ts
файл:источник
Предложенный ответ не работает для меня с Angular 4. Вместо этого мне пришлось использовать другой способ привязки атрибута с
attr
префиксом:источник
attr.
?ReactiveFormsModule
прямо в мою страницу.module.ts
. Не.page.ts
... как только я это сделал, мой шаблон мог правильно идентифицироватьformGroup
атрибут безattr.
префикса.Если вам нужно импортировать два модуля, добавьте это ниже
источник
Имейте в виду, что если вы определили «Модули элементов», вам нужно будет импортировать их в модуль компонентов, даже если вы уже импортированы в
AppModule
. Из угловой документации:https://angular.io/docs/ts/latest/guide/ngmodule.html
источник
Ошибка говорит о том, что FormGroup не распознается в этом модуле. Таким образом, вы должны импортировать эти (ниже) модули в каждый модуль, который использует FormGroup
Затем добавьте FormsModule и ReactiveFormsModule в массив импорта вашего модуля .
Вы можете подумать, что я уже добавил его в AppModule и он должен наследовать от него? Но это не так. потому что эти модули экспортируют необходимые директивы, которые доступны только при импорте модулей. Узнайте больше здесь ... https://angular.io/guide/sharing-ngmodules .
Другие факторы для этих ошибок могут быть ошибкой заклинания как ниже ...
[FormGroup] = "форма" Капитал F вместо малого F
[formsGroup] = "form" Дополнительные s после формы
источник
У меня была такая же проблема с Angular 7. Просто импортируйте следующее в ваш файл app.module.ts.
Затем добавьте FormsModule и ReactiveFormsModule в ваш массив импорта.
источник
Эта проблема возникает из-за отсутствия импорта FormsModule, ReactiveFormsModule. Я также пришел с той же проблемой. Мой случай был другим. так как я работал с модулями. Так что я пропустил выше импорт в моих родительских модулях, хотя я импортировал его в дочерние модули, он не работал.
Затем я импортировал его в мои родительские модули, как показано ниже, и это сработало!
источник
Для людей, гуляющих эти темы об этой ошибке. В моем случае у меня был общий модуль, в который я только экспортировал FormsModule и ReactiveFormsModule и забыл импортировать его. Это вызвало странную ошибку: группы не работали в подкомпонентах. Надеюсь, что это помогает людям почесать голову.
источник
Я сталкивался с этой ошибкой, когда пытался провести e2e-тестирование, и это сводило меня с ума, что на это не было ответов.
Если вы проводите тестирование, найдите файл * .specs.ts и добавьте:
источник
Небольшое примечание: будьте осторожны с загрузчиками и минимизируйте (Rails env.):
Увидев эту ошибку и попробовав каждое решение, я понял, что что-то не так с моим загрузчиком HTML.
Я установил мою среду Rails для успешного импорта путей HTML для моих компонентов с помощью этого загрузчика (
config/loaders/html.js.
):После нескольких часов усилий и бесчисленного количества импорта ReactiveFormsModule я увидел , что моя
formGroup
была строчные буквами:formgroup
.Это привело меня к загрузчику и к тому, что он уменьшил мой HTML при сворачивании.
После изменения параметров все работало как надо, и я снова мог плакать.
источник
использование и импорт REACTIVE_FORM_DIRECTIVES :
источник
Если у вас возникла эта проблема при разработке компонента, вы должны добавить эти два модуля в ближайший модуль:
И если вы разрабатываете тест для ваших компонентов, вам следует добавить этот модуль в свой тестовый файл следующим образом:
источник
Импортировать ReactiveFormsModule в соответствующий модуль
источник
Простое решение:
Шаг 1: импортировать ReactiveFormModule
шаг 2: добавьте «ReactiveFormsModule» в раздел импорта
Шаг 3: перезапустите приложение и готово
Пример :
источник
Импортируйте и зарегистрируйте ReactiveFormsModule в вашем app.module.ts.
Убедитесь в правильности написания в файлах .ts и .html. xxx.ts
xxx.html file-
Я был по ошибке написал [FormGroup] insted из [formGroup]. Проверьте правильность написания в .html. Это не выдает ошибку времени компиляции. Если что-то не так в файле .html.
источник
Примечание : если вы работаете внутри компонента дочернего модуля, вам просто нужно импортировать ReactiveFormsModule в дочерний модуль, а не в корневой модуль родительского приложения.
источник
Не будь таким тупым, как я. Получала ту же ошибку, что и выше, ни один из параметров в этой теме не работал. Затем я понял, что я использовал заглавную букву «F» в FormGroup. Doh!
Вместо:
[FormGroup]="form"
Делать:
[formGroup]="form"
источник
если это просто ошибка машинописного текста, но все в вашей форме работает, возможно, вам просто нужно перезапустить IDE
источник
У меня была та же проблема, убедитесь, что при использовании подмодулей (например, у вас есть не только app.component.module.ts, но у вас есть отдельный компонент, такой как login.module.ts, что вы включаете импорт ReactiveFormsModule в этот логин Импорт .module.ts , чтобы он работал. Мне даже не нужно импортировать ReactiveFormsModule в мой app.component.module, потому что я использую субмодули для всего.
login.module.ts:
источник
Может помочь кому-то:
если у вас есть formGroup в модальном (entrycomponent), тогда вы должны импортировать ReactiveFormsModule также в модуль, где создается модальный экземпляр.
источник
Can't bind to 'formGroup' since it isn't a known property of 'form'
означает, что вы пытаетесь связать свойство с помощью angular (
[prop]
), но angular не может найти ничего, что он знает для этого элемента (в данном случаеform
).это может произойти, если не использовать нужный модуль (пропуская импорт где-то в пути), а иногда просто вызвать опечатку, например:
[formsGroup]
сs
послеform
источник
Мое решение было тонким, и я не видел его уже в списке.
Я использовал реактивные формы в компоненте Angular Materials Dialog, который не был объявлен в
app.module.ts
. Основной компонент был объявлен вapp.module.ts
и откроет компонент диалога, но компонент диалога не был явно объявлен вapp.module.ts
.У меня не было проблем с использованием диалогового компонента в обычном режиме, за исключением того, что форма выдает эту ошибку при каждом открытии диалога.
Can't bind to 'formGroup' since it isn't a known property of 'form'.
источник
Во-первых, это не относится к угловым версиям> 2 . Просто импортируйте следующее в ваш файл app.module.ts, чтобы решить проблемы.
Затем добавьте FormsModule и ReactiveFormsModule в ваш массив импорта.
Примечание : вы также можете импортировать
ReactiveFormsModule
в определенный модуль вместоapp.module.ts
источник
Как только я добавил свой модуль,
AppModule
все стало работать нормально.источник