Saat ini saya sedang belajar AngularJS dan mengalami kesulitan memahami perbedaan antara ng-bind
dan ng-model
.
Adakah yang bisa memberi tahu saya perbedaannya dan kapan yang satu harus digunakan?
Saat ini saya sedang belajar AngularJS dan mengalami kesulitan memahami perbedaan antara ng-bind
dan ng-model
.
Adakah yang bisa memberi tahu saya perbedaannya dan kapan yang satu harus digunakan?
ng-bind memiliki pengikatan data satu arah ($ scope -> view). Ini memiliki jalan pintas {{ val }}
yang menampilkan nilai ruang lingkup $scope.val
dimasukkan ke dalam html di mana val
adalah nama variabel.
ng-model dimaksudkan untuk diletakkan di dalam elemen form dan memiliki pengikatan data dua arah ($ scope -> view and view -> $ scope) mis <input ng-model="val"/>
.
jawaban tosh sampai ke inti pertanyaan dengan baik. Ini beberapa informasi tambahan ....
Penyaring & Pemformat
ng-bind
danng-model
keduanya memiliki konsep mengubah data sebelum mengeluarkannya untuk pengguna. Untuk itu,ng-bind
gunakan filter , sementarang-model
menggunakan formatters .filter (ng-bind)
Dengan
ng-bind
, Anda dapat menggunakan filter untuk mengubah data Anda. Sebagai contoh,<div ng-bind="mystring | uppercase"></div>
,atau lebih sederhana:
<div>{{mystring | uppercase}}</div>
Perhatikan bahwa
uppercase
ini adalah filter sudut bawaan , meskipun Anda juga dapat membuat filter sendiri .formatter (model-ng)
Untuk membuat pemformat ng-model, Anda membuat direktif
require: 'ngModel'
yang memungkinkan, yang memungkinkan arahan untuk mendapatkan akses ke ngModelcontroller
. Sebagai contoh:Kemudian di parsial Anda:
Ini pada dasarnya
ng-model
setara dengan apa yang dilakukanuppercase
filter dalamng-bind
contoh di atas.Parser
Sekarang, bagaimana jika Anda berencana untuk mengizinkan pengguna untuk mengubah nilai
mystring
?ng-bind
hanya memiliki satu cara mengikat, dari tampilan model -> . Namun, dapat mengikat dari tampilan -> model yang berarti Anda dapat mengizinkan pengguna untuk mengubah data model, dan menggunakan parser Anda dapat memformat data pengguna secara efisien. Begini tampilannya:ng-model
Bermain dengan plunker langsung dari contoh
ng-model
formatter / parserApa lagi?
ng-model
juga memiliki validasi bawaan. Cukup memodifikasi Anda$parsers
atau$formatters
fungsi untuk memanggil ngModel 'scontroller.$setValidity(validationErrorKey, isValid)
fungsi .Angular 1.3 memiliki larik $ validator baru yang dapat Anda gunakan untuk validasi alih-alih
$parsers
atau$formatters
.Angular 1.3 juga memiliki dukungan pengambil / penyetel untuk ngModel
sumber
ngModel
Arahan ngModel mengikat input, pilih, textarea (atau custom form control) ke properti pada lingkup.Arahan ini dijalankan pada tingkat prioritas 1.
Contoh Plunker
JAVASCRIPT
CSS
HTML
ngModel bertanggung jawab untuk:
ngBind
Atribut ngBind memberitahu Angular untuk mengganti konten teks dari elemen HTML yang ditentukan dengan nilai ekspresi yang diberikan, dan untuk memperbarui konten teks ketika nilai ekspresi itu berubah.Arahan ini dijalankan pada tingkat prioritas 0.
Contoh Plunker
JAVASCRIPT
HTML
ngBind bertanggung jawab untuk:
sumber
Jika Anda ragu-ragu untuk menggunakan
ng-bind
ataung-model
, coba jawab pertanyaan ini:Ya:
ng-bind
(pengikatan satu arah)Tidak:
ng-model
(mengikat dua arah)Iya:
ng-bind
Tidak:
ng-model
(Anda tidak boleh menggunakan ng-bind jika nilainya diperlukan)Ya:
ng-model
(Anda tidak dapat menggunakan ng-bind dengan<input>
tag)Tidak:
ng-bind
sumber
ng-model
direktif model ng di AngularJS adalah salah satu kekuatan terbesar untuk mengikat variabel yang digunakan dalam aplikasi dengan komponen input. Ini berfungsi sebagai pengikatan data dua arah. Jika Anda ingin lebih memahami tentang ikatan dua arah, Anda memiliki komponen input dan nilai yang diperbarui ke bidang itu harus tercermin di bagian lain dari aplikasi. Solusi yang lebih baik adalah mengikat variabel ke bidang itu dan menampilkan variabel itu di mana pun Anda ingin menampilkan nilai yang diperbarui melalui aplikasi.
ng-bind
ng-bind bekerja jauh berbeda dari ng-model. ng-bind adalah salah satu cara pengikatan data yang digunakan untuk menampilkan nilai di dalam komponen html sebagai HTML bagian dalam. Arahan ini tidak dapat digunakan untuk mengikat dengan variabel tetapi hanya dengan konten elemen HTML. Bahkan ini dapat digunakan bersama dengan ng-model untuk mengikat komponen ke elemen HTML. Arahan ini sangat berguna untuk memperbarui blok seperti div, span, dll. Dengan konten HTML dalam.
Contoh ini akan membantu Anda untuk mengerti.
sumber
sumber
ngModel biasanya digunakan untuk memasukkan tag untuk mengikat variabel yang kita dapat mengubah variabel dari halaman controller dan html tetapi ngBind menggunakan untuk menampilkan variabel di halaman html dan kita dapat mengubah variabel hanya dari controller dan html hanya menunjukkan variabel.
sumber
Kita dapat menggunakan ng-bind dengan
<p>
untuk menampilkan, kita dapat menggunakan jalan pintas untukng-bind {{model}}
, kita tidak dapat menggunakan ng-bind dengan kontrol input html, tetapi kita dapat menggunakan jalan pintas untukng-bind {{model}}
dengan kontrol input html.sumber