Saya mendapatkan kesalahan ini dari Angular 2
core.umd.js: 5995 KECUALI: Tidak tertangkap (dalam janji): Kesalahan: Kesalahan pada app / model_exposure_currencies / model_exposure_currencies.component.html: 57: 18 disebabkan oleh: Jika ngModel digunakan dalam bentuk tag, salah satu atribut nama harus berupa: set atau kontrol formulir harus didefinisikan sebagai 'mandiri' di 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>
Ini adalah bagaimana saya menggunakan tag formulir:
<form #f="ngForm" (ngSubmit)="onSubmit()">
angular
angular-forms
Tampa
sumber
sumber
Jawaban:
Jika ngForm digunakan, semua bidang input yang
[(ngModel)]=""
harus memiliki nama atribut dengan nilai.sumber
Karena setiap pengembang memiliki kebiasaan yang sama, tidak membaca kesalahan lengkap, baca saja baris pertama dan mulailah mencari jawaban dari orang lain :) :) Saya juga salah satunya, itu sebabnya saya ada di sini:
Baca kesalahan, dengan jelas mengatakan:
Apa lagi yang perlu kita pahami kesalahan ini?
Gunakan salah satu opsi, semuanya akan berjalan lancar.
sumber
[ngModelOptions]="{standalone: true}
: stackoverflow.com/a/38368261/3135317 . Dalam kasus saya, saya mendapat `ngModel yang ditakuti digunakan dalam tag formulir, baik atribut nama harus ...` kesalahan ketika saya memiliki `* ngFor * untuk array bersarang. Penjilidan modelnya baik-baik saja, templatnya terbuka. "Contoh 1" TIDAK BISA bekerja; "Contoh 2" sempurna.Kedua atribut tersebut diperlukan dan juga periksa kembali semua elemen bentuk memiliki atribut "nama". jika Anda menggunakan konsep form submit, sebaiknya gunakan tag div saja sebagai ganti elemen form.
sumber
Dalam kasus saya kesalahan terjadi karena di bawah ini dalam marka html satu baris lagi ada tanpa atribut nama .
Tetapi browser masih melaporkan bahwa baris pertama memiliki kesalahan. Dan sulit untuk menemukan sumber kesalahan jika Anda memiliki elemen lain di antara keduanya.
sumber
Ketika Anda melihat konsol dengan jelas. Ini akan memberi Anda dua contoh. Terapkan salah satunya.
atau
<input [(ngModel)]="person.firstName" name="first">
sumber
Saya perhatikan bahwa alat pengembang Chrome terkadang hanya menggarisbawahi elemen pertama dalam warna merah swaggly bahkan jika itu diatur dengan benar dengan sebuah nama. Ini melempar saya untuk sementara waktu.
Orang harus yakin untuk menambahkan nama ke setiap elemen pada formulir yang berisi ngModel terlepas dari mana yang digarisbawahi berlekuk-lekuk.
sumber
Cukup mudah untuk memperbaikinya.
Bagi saya, kami memiliki lebih dari satu input dalam formulir. Kita perlu mengisolasi input / jalur yang menyebabkan kesalahan dan cukup menambahkan
name
atribut. Itu memperbaiki masalah bagi saya:Sebelum:
Setelah: saya baru saja menambahkan
name
atribut untukselect
dancheckbox
dan itu memperbaiki masalah. Sebagai berikut:Seperti yang Anda lihat menambahkan
name
atribut. Tidak perlu diberikan sama denganngModel
nama Anda . Memberikanname
atribut saja akan memperbaiki masalah.sumber
Anda perlu mengimpor {NgForm} dari @ angular / form di page.ts Anda;
Kode HTML:
Di Page.ts Anda, terapkan fungsi Anda untuk memanipulasi data formulir:
sumber
Coba ini...
sumber
Untuk semua orang yang tidak panik dengan pesan kesalahan itu sendiri, tetapi hanya googling untuk penjelasan mengapa contoh dari sini tidak bekerja (yaitu pemfilteran dinamis tidak terjadi ketika teks diketik ke dalam kolom input): itu tidak akan berfungsi sampai Anda akan menambahkan parameter nama di bidang input. Tidak ada yang menunjuk pada penjelasan mengapa pipa tidak bekerja, tetapi pesan kesalahan menunjuk ke topik ini dan memperbaikinya sesuai dengan jawaban yang diterima membuat filter dinamis berfungsi.
sumber
Anda tidak menyebutkan versi yang Anda gunakan, tetapi jika Anda menggunakan rc5 atau rc6, gaya bentuk "lama" itu sudah usang. Lihatlah ini untuk panduan tentang teknik formulir "baru": https://angular.io/docs/ts/latest/guide/forms.html
sumber
Agar dapat menampilkan informasi dalam bentuk yang Anda inginkan, Anda perlu memberikan input spesifik nama-nama yang menarik. Saya sarankan Anda memiliki:
sumber
Bagi saya, solusinya sangat sederhana. Saya mengubah
<form>
tag menjadi a<div>
dan kesalahan hilang.sumber
Itulah tiga hal yang perlu digunakan ngModel di dalam direktif formGroup.
Perhatikan bahwa nama yang sama harus digunakan.
sumber