Я получил следующую ошибку при запуске моего приложения Angular, даже если компонент не отображается.
Я должен закомментировать, <input>
чтобы мое приложение работало.
zone.js:461 Unhandled Promise rejection: Template parse errors:
Can't bind to 'ngModel' since it isn't a known property of 'input'. ("
<div>
<label>Created:</label>
<input type="text" [ERROR ->][(ngModel)]="test" placeholder="foo" />
</div>
</div>"): InterventionDetails@4:28 ; Zone: <root> ; Task: Promise.then ; Value:
Я смотрю на героя, но не вижу никаких отличий от моего кода.
Вот файл компонента:
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Intervention } from '../../model/intervention';
@Component({
selector: 'intervention-details',
templateUrl: 'app/intervention/details/intervention.details.html',
styleUrls: ['app/intervention/details/intervention.details.css']
})
export class InterventionDetails
{
@Input() intervention: Intervention;
public test : string = "toto";
}
javascript
angular
typescript
input
Энтони Бренельер
источник
источник
Ответы:
Да, вот и все, в app.module.ts я только что добавил:
источник
[{ngModel}]
вместо правильного:[(ngModel)]
component.spec.ts
файл.Чтобы использовать двустороннюю привязку данных для ввода формы, вам необходимо импортировать
FormsModule
пакет в свойAngular
модуль. Для получения дополнительной информации см.Angular 2
Официальный учебник здесь и официальную документацию для формисточник
import { FORM_DIRECTIVES } from '@angular/forms';
и добавилFORM_DIRECTIVES
к директивам, и да, моя привязка снова работает (чтобы было ясно, что она работала до выхода rc5)FORM_DIRECTIVES
на всякий случай мертвыДля использования
[(ngModel)]
в Angular 2 , 4 и 5+ Вам необходимо импортировать FormsModule из формы Angular ...Также в этом пути под формами в Angular Repo в GitHub :
Вероятно , это не очень приятно для разработчиков AngularJs , как вы могли бы использовать нг-модель везде в любое время до, но , как Angular пытается отдельные модули для использования все , что вы хотели бы, чтобы вы хотите использовать в то время, ngModel в FormsModule прямо сейчас ,
Также, если вы используете ReactiveFormsModule, необходимо импортировать его тоже.
Так что просто ищите app.module.ts и убедитесь, что вы
FormsModule
импортировали в ...Также это текущие начальные комментарии для Angular4
ngModel
в FormsModule :Если вы хотите использовать свой ввод, а не в форме, вы можете использовать его
ngModelOptions
и сделать автономную истину ...Для получения дополнительной информации, посмотрите на ng_model в разделе Angular здесь
источник
Вам необходимо импортировать FormsModule
Откройте app.module.ts
и добавить строку
а также
источник
Вбрасывание этого может помочь кому-то.
Предполагая , что вы создали новый NgModule, скажем ,
AuthModule
посвященный работе с вашими потребностями Auth, убедитесь , что импортFormsModule
в этом AuthModule тоже .Если вы будете использовать
FormsModule
ТОЛЬКО вAuthModule
тогда, вам не нужно будет импортироватьFormModule
IN по умолчаниюAppModule
Так что-то вроде этого в
AuthModule
:Тогда забудьте об импорте,
AppModule
если вы не используетеFormsModule
где-либо еще.источник
Пример 1
Пример 2
источник
Импортируйте FormsModule в те модули, где вы хотите использовать [(ngModel)]
источник
Есть два шага, которые вы должны выполнить, чтобы избавиться от этой ошибки
в основном app.module.ts должен выглядеть так:
Надеюсь, поможет
источник
Вам необходимо импортировать FormsModule в корневой модуль, если этот компонент находится в корневом каталоге, т.е. app.module.ts
Пожалуйста, откройте app.module.ts
Импортировать FormsModule из @ angular / forms
Пример:
а также
источник
Я использую Angular 7
Я должен импортировать ReactiveFormsModule, потому что я использую класс FormBuilder для создания реактивной формы.
источник
импортировать FormsModule в вашем модуле приложения.
это позволит вашему приложению работать хорошо.
источник
Если вам нужно использовать
[(ngModel)]
первый вам нужно импортироватьFormsModule
вapp.module.ts
и затем добавить в список импорта. Что-то вроде этого:app.module.ts
import {FormsModule} from "@angular/forms";
imports: [ BrowserModule, FormsModule ],
app.component.ts
<input type="text" [(ngModel)]="name" >
<h1>your name is: {{name}} </h1>
источник
ngModel является частью FormsModule. И он должен быть импортирован из @ angular / forms для работы с ngModel.
Пожалуйста, измените app.module.ts следующим образом:
источник
Если кто-то все еще получает ошибки после применения принятого решения, возможно, это связано с тем, что у вас есть отдельный файл модуля для компонента, в котором вы хотите использовать свойство ngModel во входном теге. В этом случае примените принятое решение и в файле module.ts компонента.
источник
Я использую Angular 5.
В моем случае мне тоже нужно было импортировать RactiveFormsModule.
app.module.ts (или anymodule.module.ts)
источник
ReactiveFormsModule
требуется, когда вам нужноFormGroup, FormControl ,Validators
и т. д. Для использованияngModel
вам не требуетсяReactiveFormsModule
.Я знаю, что этот вопрос касается Angular 2, но я использую Angular 4, и ни один из этих ответов не помог.
В Angular 4 синтаксис должен быть
Надеюсь это поможет.
источник
если вы по-прежнему получаете сообщение об ошибке после правильного импорта FormsModule, проверьте ваш терминал или (консоль Windows), потому что ваш проект не компилируется (из-за другой ошибки, которая может быть чем-либо), и ваше решение не было отражено в вашем браузере!
В моем случае моя консоль имела следующую несвязанную ошибку: Свойство 'retrieveGithubUser' не существует для типа 'ApiService'.
источник
В модуле, который вы хотите использовать ngModel, вы должны импортировать FormsModule
источник
ngModel исходит от FormsModule. В некоторых случаях вы можете получить этот вид ошибки:
(В какой-то версии я столкнулся с этой проблемой) Вы правильно импортировали FormsModule, но проблема заключается во входном HTML-теге. Вы должны добавить атрибут тега name для ввода, и имя привязанного объекта в [(ngModel)] должно совпадать с именем в атрибуте name
источник
В
ngModule
вас нужно импортироватьFormsModule
, потому чтоngModel
исходит отFormsModule
. Пожалуйста, измените ваш app.module.ts как приведенный ниже код, которым я поделилсяисточник
импорт FormModule app.module
источник
источник
Иногда вы получаете эту ошибку, когда пытаетесь использовать компонент из модуля, который не является общим, в другом модуле.
Например, у вас есть 2 модуля с module1.componentA.component.ts и module2.componentC.component.ts, и вы пытаетесь использовать селектор из module1.componentA.component.ts в шаблоне внутри module2 (например
<module1-componentA [someInputVariableInModule1]="variableFromHTTPRequestInModule2">
, он выбрасывает ошибка в том, что someInputVariableInModule1 недоступен внутри module1.componentA.component.ts - даже если у вас есть@Input() someInputVariableInModule1
в module1.componentA.Если это происходит, вы хотите поделиться модулем 1.componentA так, чтобы он был доступен в других модулях. Таким образом, если вы поделитесь module1.componentA внутри sharedModule, module1.componentA будет использоваться внутри других модулей (вне модуля 1), и каждый модуль, импортирующий sharedModule, сможет получить доступ к селектору в своих шаблонах, вставляя
@Input()
объявленную переменную.источник
Для моего сценария мне пришлось импортировать оба [CommonModule] и [FormsModule] в мой модуль
источник
Вам необходимо импортировать FormsModule
Откройте app.module.ts
и добавить строку
а также
источник
Иногда , если мы уже импортировали
BrowserModule
,FormsModule
и другие связанные с ними модули , хотя я получил ту же ошибку , то я понял , что мы обязательно импортировать их в порядке , в моем случае , я пропустил его. Поэтому порядок должен быть , какBrowserModule
,FormsModule
,ReactiveFormsModule
.Надеюсь, это поможет кому-то .. :)
источник
Это для людей, которые используют простой JavaScript вместо Type Script. В дополнение к ссылке на файл скрипта форм в верхней части страницы, как показано ниже
Вы также должны указать загрузчику модуля загрузить
ng.forms.FormsModule
. После внесения изменений моеimports
свойствоNgModule
метода выглядело так:imports: [ng.platformBrowser.BrowserModule, ng.forms.FormsModule],
Удачного кодирования!
источник
Я обновился с RC1 до RC5 и получил эту ошибку.
Я завершил свою миграцию (представил новый
app.module.ts
файл,package.json
включив в него новые версии и отсутствующие модули, и, наконец, сменив егоmain.ts
на загрузочный соответственно, на примере быстрого запуска Angular2 ).Я сделал,
npm update
а затемnpm outdated
чтобы подтвердить, что установленные версии были правильными, все еще не повезло.Я закончил, полностью вытирая
node_modules
папку и переустанавливая сnpm install
- Вуаля! Задача решена.источник
Когда я впервые делал урок, main.ts выглядел немного иначе, чем сейчас. Это выглядит очень похоже, но обратите внимание на отличия (верхний правильный).
Правильный:
Старый учебный код:
источник
добавить код в app.module.ts, он работал для меня:
источник