Я получаю эту ошибку от Angular 2
core.umd.js: 5995 ИСКЛЮЧЕНИЕ: Uncaught (в обещании): ошибка: ошибка в app / model_exposure_currencies / model_exposure_currencies.component.html: 57: 18, вызванная: если в теге формы используется ngModel, либо атрибут name должен быть set или элемент управления формы должен быть определен как «автономный» в ngModelOptions.
Example 1: <input [(ngModel)]="person.firstName" name="first">
Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">
<td *ngFor="let lag of ce.lags">
<div class="form-group1">
<input name="name" [(ngModel)]="lag.name" [ngModelOptions]="{standalone: true}" class="form-control" pattern="[0-9]*(\.[0-9]+)?" required>
</div>
</td>
Вот как я использую тег формы:
<form #f="ngForm" (ngSubmit)="onSubmit()">
angular
angular-forms
Tampa
источник
источник
Ответы:
Если используется ngForm, все поля ввода
[(ngModel)]=""
должны иметь имя атрибута со значением.источник
Поскольку у каждого разработчика есть общая привычка, не читать полную ошибку, просто прочитайте первую строку и начните искать ответ от кого-то еще :) :) Я тоже один из них, поэтому я здесь:
Прочитайте ошибку, четко сказав:
Что еще нам нужно, чтобы понять эту ошибку?
Используйте любой вариант, все будет работать гладко.
источник
[ngModelOptions]="{standalone: true}
: stackoverflow.com/a/38368261/3135317 . В моем случае, я понял, что страшный `ngModel используется внутри тега формы, либо атрибут name должен ...` ошибка, когда у меня был `* ngFor * для вложенного массива. Привязка модели была в порядке, шаблон срублен. «Пример 1» НЕ МОЖЕТ работать; «Пример 2» был идеальным.В моем случае ошибка произошла потому, что ниже в html разметке существовала еще одна строка без атрибута name .
Но браузер все еще сообщает, что в первой строке есть ошибка. И трудно обнаружить источник ошибки, если между ними есть другие элементы.
источник
Оба атрибута необходимы, а также перепроверить все элементы формы, имеющие атрибут «имя». Если вы используете концепцию отправки формы, в противном случае просто используйте тег div вместо элемента формы.
источник
Когда вы четко посмотрите на консоль. Это даст вам два примера. Реализуйте любой из них.
или
<input [(ngModel)]="person.firstName" name="first">
источник
Я заметил, что инструмент разработчика Chrome иногда только подчеркивает первый элемент красным, даже если он правильно задан с именем. Это оттолкнуло меня на некоторое время.
Необходимо обязательно добавить имя к каждому элементу формы, который содержит ngModel, независимо от того, какой из них подчеркнут.
источник
Это довольно легко исправить.
Для меня у нас было более одного ввода в форме. Нам нужно изолировать ввод / строку, вызывающую ошибку, и просто добавить
name
атрибут. Это решило проблему для меня:Перед:
После: я просто добавил
name
атрибут дляselect
иcheckbox
и это решило проблему. Следующим образом:Как видите, добавил
name
атрибут. Не обязательно указывать то же самое, что и вашеngModel
имя. Просто предоставлениеname
атрибута решит проблему.источник
Вам нужно импортировать {NgForm} из @ angular / forms в вашем page.ts;
Код HTML:
В вашем Page.ts реализуйте свою функцию для манипулирования данными формы:
источник
Попробуй это...
источник
Для всех, кто не паникует из-за самого сообщения об ошибке, а просто гуглится для объяснения, почему пример отсюда не работает (т.е. динамическая фильтрация не происходит, когда текст вводится в поле ввода): он не будет работать пока вы не добавите параметр name в поле ввода. Ничто не указывает на объяснение, почему канал не работает, но сообщение об ошибке указывает на эту тему, и исправление его в соответствии с принятым ответом делает динамический фильтр работающим.
источник
Вы не упомянули версию, которую используете, но если вы используете rc5 или rc6, этот «старый» стиль формы устарел. Посмотрите на это для руководства по «новым» методам форм: https://angular.io/docs/ts/latest/guide/forms.html
источник
Для того, чтобы иметь возможность отображать информацию в форме, которую вы хотели бы, вам нужно дать эти конкретные вводы имен интересов. Я бы порекомендовал вам иметь:
источник
Для меня решение было очень простым. Я изменил
<form>
тег в<div>
и ошибка исчезнет.источник
Это три вещи, которые необходимо использовать ngModel внутри директивы formGroup.
Обратите внимание, что следует использовать то же имя.
источник