Saya bekerja dalam tim kecil, membangun di AngularJS dan mencoba mempertahankan beberapa standar dasar & praktik terbaik; terutama mengingat kami relatif baru dengan Angular.
Pertanyaan saya adalah tentang Directive. Lebih tepatnya, restrict
opsinya.
Beberapa dari kita menggunakan restrict: 'E'
sehingga memiliki <my-directive></my-directive>
html.
Orang lain menggunakan restrict: 'A'
dan memiliki <div my-directive></div>
html.
Kemudian, tentu saja, Anda dapat menggunakan restrict: 'EA'
dan menggunakan salah satu cara di atas.
Saat ini itu bukan masalah besar, meskipun ketika proyek ini sebesar yang akan didapat, saya ingin siapa pun yang melihatnya dapat dengan mudah memahami apa yang sedang terjadi.
Apakah ada pro / kontra untuk atribut atau elemen cara melakukan sesuatu?
Apakah ada jebakan yang harus kita ketahui, jika memilih say element over atribut?
sumber
limit adalah untuk mendefinisikan tipe direktif, dan bisa berupa
A
(Attribute),C
(Class),E
(Element), danM
(coMment), mari kita asumsikan bahwa nama direktifnya adalahDoc
:sumber
Opsi pembatasan biasanya diatur ke:
Berikut tautan dokumentasinya .
sumber
Elemen tidak didukung di IE8 di luar kotak Anda harus melakukan beberapa pekerjaan untuk membuat IE8 menerima tag kustom.
Satu keuntungan menggunakan atribut di atas elemen adalah Anda dapat menerapkan beberapa arahan ke simpul DOM yang sama. Ini sangat berguna untuk hal-hal seperti kontrol formulir di mana Anda dapat menyorot, menonaktifkan, atau menambahkan label dll. Dengan atribut tambahan tanpa harus membungkus elemen dalam sekumpulan tag.
sumber
Salah satu jebakan yang saya tahu adalah masalah IE dengan elemen khusus. Seperti dikutip dari dokumen :
sumber
Batu sandungan:
<my-directive></my-directive>
tidak akan berfungsi di IE8 tanpa solusi alternatif ( https://docs.angularjs.org/guide/ie )<div data-my-directive="ValueOfTheFirstParameter"></div>
Daripada ini:
<my-directive my-param="ValueOfTheFirstParameter"></my-directive>
Kami tidak menggunakan elemen html kustom, karena jika ini 2 fakta.
Setiap arahan oleh kerangka pihak ketiga dapat ditulis dalam dua cara:
<my-directive></my-directive>
atau
<div data-my-directive></div>
melakukan hal yang sama.
sumber
2 masalah dengan elemen:
Gunakan Atribut.
sumber
replace
atributnyatrue
?