Menggunakan AngularJS jika saya menetapkan nilai kotak teks input sederhana untuk sesuatu seperti "bob" di bawah ini. Nilai tidak ditampilkan jika ng-model
atribut ditambahkan.
<input type="text"
id="rootFolder"
ng-model="rootFolders"
disabled="disabled"
value="Bob"
size="40"/>
Adakah yang tahu tentang pekerjaan sederhana di sekitar untuk default input ini untuk sesuatu dan menjaga ng-model
? Saya mencoba menggunakan ng-bind
dengan nilai default tetapi tampaknya tidak berhasil juga.
javascript
html
angularjs
Halo Dunia
sumber
sumber
Vojta mendeskripsikan "Angular way", tetapi jika Anda benar-benar perlu membuat pekerjaan ini, @urbanek baru-baru ini memposting solusi menggunakan ng-init:
https://groups.google.com/d/msg/angular/Hn3eztNHFXw/wk3HyOl9fhcJ
sumber
value="Bob"
bagian dalam tag input.Mengesampingkan arahan input tampaknya melakukan pekerjaan. Saya membuat beberapa perubahan kecil pada kode Dan Hunsaker :
$parse().assign()
bidang tanpa atribut ngModel.assign()
fungsi param.sumber
Cara sudut
Cara Angular yang benar untuk melakukan ini adalah dengan menulis aplikasi halaman tunggal, AJAX di Templat formulir, lalu mengisinya secara dinamis dari model. Model tidak diisi dari formulir secara default karena model adalah sumber tunggal kebenaran. Sebaliknya Angular akan pergi ke arah lain dan mencoba untuk mengisi formulir dari model.
Namun, jika Anda tidak punya waktu untuk memulai dari awal
Jika Anda memiliki aplikasi yang ditulis, ini mungkin melibatkan beberapa perubahan arsitektur yang lumayan. Jika Anda mencoba menggunakan Angular untuk meningkatkan formulir yang ada, daripada membangun seluruh aplikasi halaman tunggal dari awal, Anda dapat menarik nilai dari formulir dan menyimpannya dalam ruang lingkup saat tautan menggunakan arahan. Angular kemudian akan mengikat nilai dalam lingkup kembali ke formulir dan menyimpannya dalam sinkronisasi.
Menggunakan arahan
Anda bisa menggunakan arahan yang relatif sederhana untuk menarik nilai dari formulir dan memuatnya ke lingkup saat ini. Di sini saya telah mendefinisikan direktif initFromForm.
Anda dapat melihat saya telah menetapkan beberapa fallback untuk mendapatkan nama model. Anda dapat menggunakan arahan ini bersama dengan arahan ngModel, atau mengikat sesuatu selain $ lingkup jika Anda mau.
Gunakan seperti ini:
Perhatikan ini juga akan berfungsi dengan textareas, dan pilih dropdown.
sumber
input="text"
. Jika Anda memilikinumber
itu akan melempar Model bukan dari tipenumber
docs.angularjs.org/error/ngModel/numfmt?p0=333if (attrs.type === "number") val = parseInt(val);
Pembaruan: Jawaban asli saya melibatkan pengontrol yang berisi kode DOM-aware, yang memecah konvensi Angular yang mendukung HTML. @dmackerman menyebutkan arahan dalam komentar atas jawaban saya, dan saya benar-benar melewatkannya sampai sekarang. Dengan masukan itu, inilah cara yang tepat untuk melakukan ini tanpa melanggar konvensi Angular atau HTML:
Ada juga cara untuk mendapatkan keduanya - ambil nilai elemen dan gunakan itu untuk memperbarui model dalam arahan:
lalu:
Anda tentu saja dapat memodifikasi arahan di atas untuk berbuat lebih banyak dengan
value
atribut sebelum menetapkan model ke nilainya, termasuk menggunakan$parse(attrs.value, scope)
untuk memperlakukanvalue
atribut sebagai ekspresi Angular (meskipun saya mungkin akan menggunakan atribut [kustom] yang berbeda untuk itu, secara pribadi, jadi atribut HTML standar secara konsisten diperlakukan sebagai konstanta).Juga, ada pertanyaan serupa di Pembuatan data yang tersedia untuk model-ng yang mungkin juga menarik.
sumber
Jika Anda menggunakan AngularJs ngModel directive, ingat bahwa nilai
value
atribut tidak mengikat pada bidang ngModel . Anda harus init sendiri dan cara terbaik untuk melakukannya, adalahsumber
Ini sedikit modifikasi pada jawaban sebelumnya ...
Tidak perlu $ parse
sumber
Hai Anda dapat mencoba metode di bawah ini dengan menginisialisasi model.
Di sini Anda dapat menginisialisasi model-ng dari kotak teks dua arah
- Dengan penggunaan ng-init
- Dengan menggunakan $ scope di js
sumber
Masalahnya adalah Anda harus mengatur model ng ke elemen induk ke tempat Anda ingin mengatur nilai-ng / nilai. Seperti yang disebutkan oleh Angular:
Misalnya: Ini adalah kode yang dieksekusi:
Catatan: Dalam kasus di atas ini saya alreday memiliki respons JSON terhadap model-ng dan nilainya, saya hanya menambahkan properti lain ke objek JS sebagai "MarketPeers". Jadi model dan nilai mungkin tergantung pada kebutuhan, tetapi saya pikir proses ini akan membantu, untuk memiliki kedua-model dan nilai tetapi tidak memiliki mereka pada elemen yang sama.
sumber
Saya memiliki masalah serupa. Saya tidak dapat menggunakan
value="something"
untuk menampilkan dan mengedit. Saya harus menggunakan perintah di bawah ini di dalam<input>
model withe ng saya yang dideklarasikan.Di mana saya memiliki daftar data dalam objek
userDataToPass
dan item yang perlu saya tampilkan dan edit adalahpinCode
.Untuk hal yang sama, saya merujuk ke video YouTube ini
sumber