Saya memiliki direktif atribut yang dibatasi sebagai berikut:
restrict: "A"
Saya harus menyampaikan dua atribut; nomor dan fungsi / panggilan balik, mengaksesnya dalam direktif menggunakan attrs
objek.
Jika arahannya adalah arahan elemen, dibatasi dengan "E"
saya bisa untuk ini:
<example-directive example-number="99" example-function="exampleCallback()">
Namun, untuk alasan saya tidak akan membahasnya, saya membutuhkan direktif menjadi direktif atribut.
Bagaimana cara mengirimkan beberapa atribut ke dalam sebuah direktif atribut?
javascript
parameters
angularjs
attributes
directive
Tidak ada gangguan
sumber
sumber
scope: false
), cakupan baru (dengan pewarisan prototypal normal, yaitu,scope: true
), dan cakupan isolasi (yaituscope: { ... }
). Jenis cakupan apa yang dibuat oleh direktif Anda?Jawaban:
Direktif dapat mengakses atribut apa pun yang ditentukan pada elemen yang sama, meskipun direktif itu sendiri bukan elemennya.
Template:
Pengarahan:
fiddle
Jika nilai atribut
example-number
akan di-hardcode, saya sarankan untuk menggunakan$eval
sekali, dan menyimpan nilainya. Variabelnum
akan memiliki jenis yang benar (angka).sumber
Anda melakukannya dengan cara yang persis sama seperti yang Anda lakukan dengan direktif elemen. Anda akan memilikinya di objek attrs, sampel saya memilikinya mengikat dua arah melalui cakupan isolate tetapi itu tidak diperlukan. Jika Anda menggunakan lingkup terisolasi Anda dapat mengakses atribut dengan
scope.$eval(attrs.sample)
atau hanya lingkup.sampel, tetapi mereka mungkin tidak didefinisikan pada penautan tergantung pada situasi Anda.digunakan sebagai:
sumber
Anda bisa mengirimkan objek sebagai atribut dan membacanya menjadi direktif seperti ini:
sumber
{{true}}
tetapi masih mengembalikan nilai stringtrue
.Ini berhasil untuk saya dan saya pikir lebih sesuai dengan HTML5. Anda harus mengubah html Anda untuk menggunakan awalan 'data-'
Dan di dalam direktif baca nilai variabel:
sumber
Jika Anda "memerlukan" 'exampleDirective' dari direktif lain + logika Anda ada di 'controller' exampleDirective (katakanlah 'exampleCtrl'):
sumber