Saya telah membaca banyak tentang penggunaan simbol-simbol ini dalam penerapan arahan khusus di AngularJS tetapi konsepnya masih belum jelas bagi saya. Maksud saya, apa artinya jika saya menggunakan salah satu nilai lingkup dalam direktif khusus?
var mainApp = angular.module("mainApp", []);
mainApp.directive('modalView',function(){
return{
restrict:'E',
scope:'@' OR scope:'&' OR scope:'=' OR scope:'>' OR scope:true
}
});
Apa sebenarnya yang kita lakukan dengan ruang lingkup di sini?
Saya juga tidak yakin apakah "ruang lingkup: '>'" ada dalam dokumentasi resmi atau tidak. Ini telah digunakan dalam proyek saya.
Edit-1
Penggunaan "scope: '>'" adalah masalah dalam proyek saya dan telah diperbaiki.
@?
?<
tidak hanya kompatibel dengan komponen dalam 1.5, tetapi juga kompatibel dengan arahan. @ Pelanggan?
menunjukkan atribut sebagai opsional .>
tidak ada dalam dokumentasi.<
adalah untuk penjilidan satu arah.@
mengikat adalah untuk melewati string. String ini mendukung{{}}
ekspresi untuk nilai interpolasi.=
mengikat adalah untuk model mengikat dua arah. Model dalam lingkup induk terkait dengan model dalam lingkup terisolasi direktif.&
mengikat adalah untuk melewatkan metode ke dalam lingkup direktif Anda sehingga dapat dipanggil dalam direktif Anda.Ketika kita menetapkan ruang lingkup: true dalam direktif, Angular js akan membuat ruang lingkup baru untuk arahan itu. Itu berarti setiap perubahan yang dilakukan pada ruang lingkup direktif tidak akan mencerminkan kembali pada pengendali induk.
sumber
<
mengikat satu arah=
mengikat dua arah&
mengikat fungsi@
hanya lulus stringsumber
Ketika kami membuat arahan pelanggan, ruang lingkup arahan bisa dalam lingkup terisolasi, itu berarti arahan tidak berbagi ruang lingkup dengan controller; baik direktif dan pengontrol memiliki ruang lingkup sendiri. Namun, data dapat diteruskan ke ruang lingkup direktif dalam tiga cara yang mungkin.
@
string literal, melewati nilai string, mengikat satu arah.=
string literal, objek lulus, 2 cara mengikat.&
string literal, memanggil fungsi eksternal, dapat meneruskan data dari direktif ke pengontrol.sumber
The AngularJS dokumentasi di arahan yang cukup baik ditulis untuk apa simbol berarti.
Agar jelas, Anda tidak bisa hanya memiliki
dalam definisi direktif. Anda harus memiliki properti yang mengikatnya, seperti pada:
Saya sangat menyarankan Anda membaca dokumentasi dan tutorial di situs. Ada lebih banyak informasi yang perlu Anda ketahui tentang cakupan terisolasi dan topik lainnya.
Berikut adalah kutipan langsung dari halaman yang terhubung di atas, mengenai nilai-nilai
scope
:Diperoleh 2017-02-13 dari https://code.angularjs.org/1.4.11/docs/api/ng/service/ $ compile # -scope-, dilisensikan sebagai CC-by-SA 3.0
sumber
Saya mengalami kesulitan mengikat nilai dengan salah satu simbol di AngularJS 1.6. Saya tidak mendapatkan nilai sama sekali, hanya
undefined
, meskipun saya melakukannya dengan cara yang persis sama seperti binding lainnya dalam file yang sama yang berfungsi.Masalahnya adalah: nama variabel saya memiliki garis bawah.
Ini gagal:
Ini bekerja:
(Tidak sepenuhnya terkait dengan pertanyaan awal, tapi itu adalah salah satu hasil pencarian teratas ketika saya melihat, jadi semoga ini membantu seseorang dengan masalah yang sama.)
sumber