Saya sudah mulai belajar tentang AngularJS dan saya bingung tentang apa perbedaan antara arahan ng-app
dan data-ng-app
arahan.
Saya sudah mulai belajar tentang AngularJS dan saya bingung tentang apa perbedaan antara arahan ng-app
dan data-ng-app
arahan.
Jawaban:
Sebagian besar jawaban ini hanya mengatakan membuat template HTML valid , atau HTML Validator Compliant , tanpa menjelaskan apa arti istilah MEREKA, baik.
Saya tidak tahu pasti, tetapi saya menduga bahwa istilah ini berlaku untuk program validasi HTML yang memindai kode Anda untuk kepatuhan standar - jenis seperti serat. Mereka tidak mengenali ng-app
atribut yang valid. Mereka mengharapkan atribut HTML non-standar akan diawali
data-attribute_name_here
.
Jadi, pembuat AngularJS
telah membuat nama alternatif untuk arahan mereka yang menyertakan data-
di depan mereka sehingga program validator HTML akan "menyukai" mereka.
Tidak ada dalam hal perilaku runtime, itu hanya gaya penamaan arahan yang berbeda seperti yang dijelaskan di sini: http://docs.angularjs.org/guide/directive
Arahan memiliki nama yang dikurung unta seperti ngBind. Arahan dapat dipanggil dengan menerjemahkan nama kasus unta ke dalam kasus ular dengan karakter khusus ini:, -, atau _. Secara opsional, arahan dapat diawali dengan x-, atau data- agar sesuai dengan validator HTML. Berikut adalah daftar beberapa nama direktif yang mungkin: ng: bind, ng-bind, ng_bind, x-ng-bind dan data-ng-bind.
Seperti yang dapat Anda lihat dari membaca ini, data-
dapat digunakan untuk membuat tes lulus HTML HTML Anda validator /
Anda dapat mendeklarasikan namespace sudut <html xmlns:ng="http://angularjs.org" ng-app>
Di browser modern tidak ada perbedaan, tetapi di IE yang lebih lama, mereka tidak akan berfungsi kecuali Anda mendeklarasikan namespace XML untuk mendefinisikannya.
Ada juga perbedaan validasi dalam ng-app
XHTML yang tidak valid, dan akan menyebabkan halaman web Anda gagal validasi HTML. Angular memungkinkan Anda untuk mengawali arahannya dengan data-
atau x-
mengizinkannya untuk divalidasi.
Anda dapat menggunakan data-ng-, bukannya ng-, jika Anda ingin membuat halaman HTML Anda valid.
Ini akan menimbulkan kesalahan
<div ng-app="">
<p>Input something in the input box:</p>
<p>Name: <input type="text" ng-model="name"></p>
<p ng-bind="name"></p>
</div>
Ini tidak akan menghasilkan kesalahan
<div data-ng-app="scope" data-ng-init="name='test'">
<p>Input something in the input box:</p>
<p>Name: <input type="text" data-ng-model="name"></p>
<p data-ng-bind="name"></p>
</div>
Perbedaan mendasar antara kedua istilah ini adalah bahwa data-ng-app memvalidasi HTML sementara yang kedua tidak. Fungsionalitas tetap sama. Untuk referensi lebih lanjut Anda dapat mencoba w3Validator.
Sama sekali tidak ada perbedaan di antara keduanya, kecuali bahwa validator HTML5 tertentu akan membuat kesalahan pada properti seperti ng-app, tetapi mereka tidak melempar kesalahan untuk apa pun yang diawali dengan data-, seperti data-ng-app. Jadi menggunakan awalan data dengan arahan sudut kami adalah baik.
Bahkan Anda dapat menggunakan arahan sudut dalam cara yang disebutkan di bawah ini ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind