Apakah ada yang tahu jika alasan di balik penggunaan metode dolar dan variabel dalam angularJS adalah untuk menginstruksikan angularJS untuk menghindari memeriksa nilai-nilai tersebut ketika pencernaan sedang terjadi? Jadi, jika sudut muncul $scope.$value
dan $scope.value
, maka itu akan menghindari memeriksa yang pertama karena diawali dengan karakter dolar dalam nama variabelnya?
128
$scope
, tetapi direktif memilikiscope
. WTF?Jawaban:
Ada beberapa kali Angular mengabaikan variabel yang diawali dengan tanda dolar:
Saat menggunakan
{{ }}
arahan, angular tidak akan menampilkan variabel bersarang$
. Misalnya ini hanya menampilkanvisible
properti.Selain itu ketika menambahkan pengamat eksplisit pada objek lingkup, perubahan ke properti dengan tanda dolar terkemuka dari objek ini tidak akan memicu pengamat. Lihat biola yang diperbarui ini .
angular.equals()
mengabaikan kunci yang diawali dengan$
.sumber
Itu hanya konvensi penamaan dari cuplikan di bawah ini http://docs.angularjs.org/tutorial/step_05
http://docs.angularjs.org/guide/concepts#angular_namespace
sumber
$scope
di controller, tetapiscope
dalam directive? --- [1] docs.angularjs.org/guide/directiveThe
$
angka di depan menunjukkan sebuah variabel, parameter, properti, atau metode yang dimiliki inti dari sudut.Properti pada objek yang berasal di dalam kerangka kerja, tetapi sebenarnya bukan bagian dari API, dapat dimulai dengan
$
- atau bahkan$$
- untuk menunjukkan metode atau properti pribadi . Ini adalah cara yang sama dengan_
awalan yang sering digunakan di perpustakaan lain.Itu tidak memiliki efek pada cara kode ditafsirkan oleh runtime, meskipun kerangka itu sendiri dapat memberikan makna khusus. Pada dasarnya, ini adalah konvensi penamaan yang mengatakan "Anda tidak boleh main-main dengan ini".
sumber
$$__$_$
- itu hanya pengidentifikasi tanpa arti khusus untuk penerjemah.Tidak sepenuhnya yakin, tapi saya percaya internal AngularJS mengandalkan memanipulasi variabel $-prefixed ini selama intisari. Memeriksa variabel-variabel ini akan berarti bahwa pencernaan tidak akan pernah stabil, karena mereka dapat terus berubah selama setiap siklus pencernaan.
Tapi jangan mengutip saya tentang itu. :)
sumber
Saya selalu menganggap
$
sepertinya "S" untuk layanan.sumber
Tanda-tanda dolar ( $ ) juga mencegah elemen untuk diulang (atau ditafsirkan) dalam arahan tertentu. Jadi misalnya properti yang dimulai dengan $ tidak digunakan
ng-repeat
karena klausa if di dalam for loop :Seseorang membuat masalah tentang topik di halaman github angulars
Dalam metode
shallowCopy
properti yang dimulai dengan $$ dilewati karena klausa if saat iterasi properies :sumber
@MarcoS memberikan tautan ke https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scope yang menjelaskan perbedaan antara $ scope dan scope. Saya menemukan ini berguna, menambah informasi dalam jawaban lain.
Dalam arahan sudut ada tautan dan pengontrol. Tautan adalah fungsi standar dengan seperangkat parameter tetap: ruang lingkup, elemen, objek atribut.
Argumen pengontrol dikelola oleh Angular injector dan tidak tergantung pesanan. Injektor menyelesaikan objek mana yang akan lewat dengan mencari parameter yang dimulai dengan $.
Penulis https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scope lebih baik dalam menjelaskannya.
sumber
Ada perbedaan besar, bukan dalam variabel, tetapi dalam parameter yang menerima kontroler. Parameter lingkup sama sekali berbeda dari parameter $ lingkup.
Untuk informasi lebih lanjut, lihat posting bermanfaat ini: http://www.thinkster.io/angularjs/aw9kWmdnik/angularjs-scope-vs-scope
sumber