1. Mekanisme apa yang digunakan untuk pengikatan data di Angular?
Jawabanprinsip terperinci
: mekanisme pemeriksaan kotor.
Analisis:
Pengikatan data dua arah adalah salah satu mekanisme inti AngularJS. Ketika ada perubahan data dalam tampilan, itu akan diperbarui ke model. Ketika data dalam model berubah, tampilan juga akan diperbarui secara sinkron. [Rekomendasi tutorial terkait: "Tutorial Angular"]
Prinsipnya adalah Angular menetapkan antrian pendengaran pada model cakupan untuk memantau perubahan data dan memperbarui tampilan. Setiap kali Anda mengikat sesuatu ke tampilan, AngularJS akan memasukkan $watch ke dalam antrian $watch untuk mendeteksi apakah ada perubahan pada model yang dipantaunya. Ketika browser menerima peristiwa yang dapat diproses oleh konteks sudut, loop $digest dipicu, melintasi semua $watch, dan akhirnya memperbarui dom.
2. Bagaimana penerapan pengikatan data dua arah AngularJS?
Jawaban:
1. Setiap elemen terikat dua arah memiliki pengamat.
2. Ketika peristiwa tertentu terjadi, deteksi data kotor intisari dipanggil.
Peristiwa ini meliputi: perubahan konten elemen formulir, respons permintaan Ajax, fungsi yang dijalankan dengan mengklik tombol, dll.
3. Deteksi data kotor akan mendeteksi semua elemen pengamat di bawah rootscope.
Fungsi $digest adalah pemantauan data kotor
3. Plug-in pihak ketiga apa yang pernah Anda gunakan dalam pengembangan proyek AngularJs?
Jawaban: AngularUi ui-router oclazyload, dll. Terlampir adalah artikel untuk melihat lebih dekat https://segmentfault. com/a /1190000003858219
4. Apa perbedaan antara ng-show/ng-hide dan ng-if?
Jawaban: Kita semua tahu bahwa ng-show/ng-hide sebenarnya menyembunyikan dan menampilkan melalui tampilan. Dan ng-if sebenarnya mengontrol penambahan dan penghapusan node dom. Oleh karena itu, jika kita memuat node dom berdasarkan kondisi yang berbeda, maka kinerja ng-if lebih baik daripada ng-show.
5. Jelaskan apa itu root S crope dan perbedaannya dengan rootScrope, rootScrope, dan scope?
Jawaban: Dalam istilah awam, halaman root S crope adalah bapak dari semua halaman rootScrope dan semua halaman rootScrope dan semua cakupan.
Analisis:
Mari kita lihat cara menghasilkan root S cop dan rootScope dan rootScope dan scope.
langkah1:Angular mem-parsing ng-app dan membuat $rootScope di memori.
langkah2: sudut melanjutkan penguraian, menemukan ekspresi {{}}, dan mem-parsingnya menjadi variabel.
langkah3: Kemudian div dengan ng-controller akan diurai dan diarahkan ke fungsi pengontrol. Saat ini, fungsi pengontrol menjadi instance objek $scope.
6. Sebutkan setidaknya tiga cara untuk mengimplementasikan komunikasi antar modul yang berbeda?
Jawaban:
7. Ekspresi { Bagaimana cara kerja {yourModel}}?
Jawaban:
Ini bergantung pada layanan $interpolasi. Setelah menginisialisasi halaman html, ia akan menemukan ekspresi ini dan menandainya, jadi setiap kali ia menemukan { {}}, $watch akan disetel. Dan $interpolation akan mengembalikan fungsi dengan parameter konteks. Ketika fungsi tersebut akhirnya dijalankan, ekspresi $parse diterapkan ke cakupan tersebut.
8. $http dalam sudut
Jawaban: $http adalah layanan inti di AngularJS, digunakan untuk membaca data dari server jarak jauh.
Kita dapat menggunakan layanan http bawaan untuk berkomunikasi langsung dengan dunia luar. Layanan http berkomunikasi langsung dengan dunia luar. Layanan http berkomunikasi langsung dengan dunia luar. Layanan http hanya merangkum objek XMLHttpRequest asli browser.
9. Ketika ng-repeat melakukan iterasi suatu array, jika ada nilai yang sama dalam array tersebut, apa yang akan terjadi dan bagaimana cara mengatasinya?
Jawaban: Ini akan meminta Duplikat di repeater tidak diperbolehkan. Tambahkan trek dengan $index untuk menyelesaikan masalah. Tentu saja, Anda juga dapat melacak dengan nilai biasa apa pun, asalkan dapat secara unik mengidentifikasi setiap item dalam array (menetapkan hubungan antara dom dan data)
10. Apakah kerangka kerja Angularjs mvc atau mvvm
jawabannya:analisis
mvvm
:uraikan dulu Ini dia pengertian mvc dan mvvm:
Pertama-tama, mengapa kita membutuhkan MVC? Karena ukuran kode menjadi semakin besar, pembagian tanggung jawab adalah tren umum, dan demi kenyamanan pemeliharaan selanjutnya, memodifikasi satu fungsi tidak mempengaruhi fungsi lainnya. Dan untuk digunakan kembali, karena banyak logikanya yang sama. MVC hanyalah sebuah sarana, tujuan utamanya adalah modularisasi dan penggunaan kembali.
Keuntungan dari mvvm
adalah kopling rendah: Tampilan dapat diubah dan dimodifikasi secara independen dari Model, dan ViewModel yang sama dapat digunakan kembali oleh beberapa Tampilan; dan perubahan dalam Tampilan dan Model dapat dibuat independen satu sama lain
: beberapa logika tampilan dapat digunakan kembali; ditempatkan Di ViewModel, beberapa Tampilan dapat digunakan kembali
pengembangan independen: pengembang dapat fokus pada pengembangan logika bisnis dan data (ViewModemvvmdi; desainer dapat fokus pada desain UI (Tampilan);
kemampuan pengujian: pelapisan Tampilan yang jelas memungkinkan untuk Itu adalah lebih mudah dan sederhana untuk menguji logika bisnis lapisan presentasi.
Dalam sudut, pola MVVM terutama dibagi menjadi empat bagian:
Tampilan: Ini berfokus pada tampilan dan rendering antarmuka. Dalam sudut,
ini berisi banyak tampilan Arahan deklaratif templates.
: Ini adalah perekat antara View dan Model, bertanggung jawab atas interaksi dan kolaborasi antara View dan Model. Bertanggung jawab untuk menyediakan data yang ditampilkan ke View, dan menyediakan cara bagi acara Command di View untuk mengoperasikan Model dalam sudut, objek $scope berfungsi sebagai ini Peran Model ViewModel
: Ini adalah pembawa enkapsulasi data yang terkait dengan logika bisnis aplikasi. Ini adalah objek dalam domain bisnis dioperasikan, sehingga model tidak akan berisi informasi terkait tampilan antarmuka. Di halaman web, sebagian besar model mengembalikan data dari server Ajax atau objek konfigurasi global; terkait dengan model. Layanan bisnis semacam ini adalah layanan domain yang dapat digunakan kembali oleh beberapa Pengontrol atau layanan lainnya.
Pengontrol: Ini bukan elemen inti dari pola MVVM, tetapi bertanggung jawab untuk inisialisasi objek ViewModel
Ini akan menggabungkan satu atau lebih layanan untuk mendapatkan objek Model domain bisnis. ViewModel, sehinggaantarmuka
aplikasi mencapai keadaan yang dapat digunakan ketika mulai memuat
database. Antarmuka mvvm digabungkan secara longgar dengan mode tampilan, dan data antarmuka diperoleh dari model tampilan. Jadi sudutjs lebih memilih mvvm
11.
Peran apa yang dimainkan $scope, pengontrol, arahan, dan layanan di mvvm di sudutjs?
Jika Anda belum tahu, analisis pertanyaan pertama sangat jelas, baca lagi dengan cermat.
12. Dalam sudut Bagaimana Anda mengontrol pemuatan sumber daya statis yang wajar dalam proyek
Jawaban: Tidak ada
13. Berapa yang harus Anda bayar? perhatian saat menulis logika pengontrol?
Jawaban:
1. Sederhanakan kodenya (inilah yang harus dimiliki semua pengembang)
2. Benar-benar tidak dapat mengoperasikan node dom. Saat ini, Anda mungkin bertanya mengapa tidak.
Jawaban Anda adalah: Operasi DOM hanya dapat muncul di arahan. Tempat terakhir kemunculannya adalah di layanan. Angular menganjurkan pengembangan berbasis pengujian. Jika operasi DOM muncul di layanan atau pengontrol, itu berarti pengujian tidak dapat lulus. Tentu saja ini hanya satu poin saja. Yang penting adalah salah satu manfaat menggunakan Angular, yaitu pengikatan data dua arah, sehingga Anda bisa fokus memproses logika bisnis tanpa harus berurusan dengan tumpukan operasi DOM. Jika kode Angular masih penuh dengan berbagai operasi DOM, mengapa tidak menggunakan jquery langsung untuk pengembangan.
Apa yang dimaksud dengan pengembangan berbasis tes? Untuk mempopulerkannya:
Pengembangan berbasis pengujian, nama lengkap bahasa Inggrisnya adalah Test-Driven Development, atau disingkat TDD, adalah metode pengembangan baru yang berbeda dari proses pengembangan perangkat lunak tradisional. Hal ini memerlukan penulisan kode pengujian sebelum menulis kode untuk fungsi tertentu, dan kemudian hanya menulis kode fungsional yang membuat pengujian tersebut lulus, dan mendorong seluruh pengembangan melalui pengujian. Ini membantu menulis kode yang ringkas, berguna, dan berkualitas tinggi serta mempercepat proses pengembangan.
14.
Jawaban cara berkomunikasi antar pengontrol:
1.
Ada dua metode untuk event di sini. Yang pertama adalah scope.scope.scope.emit, dan kemudian memperoleh parameter dengan mendengarkan event dari root S cope; rootScope untuk mendapatkan parameter. ; Yang lainnya adalah acara rootScope untuk mendapatkan parameter; yang lainnya adalah rootScope.broadcast, yang memperoleh parameter dengan mendengarkan siaran dan mendengarkan acara cakupan.
Tidak ada perbedaan kinerja antara kedua metode ini di Angular versi terbaru. Alasan utamanya adalah arah pengiriman acara berbeda.
2. Layanan
dapat membuat Layanan acara khusus, atau dapat dibagi menurut logika bisnis dan menyimpan data di Layanan yang sesuai.
3.
Metode $rootScope mungkin sedikit kotor, tetapi lebih nyaman, yaitu, data disimpan di root S cope, sehingga di setiap sub-rootScope, jadi di setiap sub-rootScope, sehingga setiap sub-scope dapat dipanggil, tetapi perlu memperhatikan siklus hidup
4. Langsung menggunakan scope .scope.scope.$nextSibling dan properti serupa
. Metode ini memiliki lebih banyak kelemahan. Secara resmi, tidak disarankan untuk menggunakan atribut apa pun yang dimulai dengan $$, yang tidak hanya meningkatkan penggandengan, tetapi juga memerlukan penanganan masalah asinkron, dan urutan cakupan tidak diperbaiki. Tidak disarankan
untuk meneruskan parameter melalui penyimpanan lokal, variabel global, atau postMessage di browser modern. Kecuali ada keadaan khusus, harap hindari metode ini.
15. Beberapa parameter instruksi khusus
Jawaban:
Mari kita bahas beberapa parameter yang umum digunakan, seperti:
batasi: bentuk deklarasi instruksi dalam dom E (elemen) A (atribut) C (nama kelas) M (komentar)
templat: dua bentuk, Suatu jenis teks HTML; fungsi yang menerima dua parameter, tElemetn dan tAttrs, dan mengembalikan string yang mewakili templat. String templat harus memiliki elemen DOM root
templateUrl: dua bentuk, satu adalah string yang mewakili jalur file HTML eksternal; fungsi yang dapat menerima dua parameter, parameternya adalah tElement dan tAttrs, dan mengembalikan karakter HTML eksternal jalur file
Kompilasi string (objek atau fungsi): Opsi kompilasi dapat mengembalikan objek atau fungsi. Jika fungsi kompilasi disetel, artinya kita ingin melakukan operasi DOM sebelum instruksi dan data real-time ditempatkan di DOM. Aman untuk melakukan operasi DOM seperti menambah dan menghapus node dalam fungsi ini. Pada dasarnya, ketika kita menyetel opsi tautan, kita sebenarnya membuat fungsi tautan postLink() sehingga fungsi kompilasi() dapat mendefinisikan fungsi tautan.
Lalu ada portal: http://www.cnblogs.com/mliudong/p/4180680.html
Perbedaan antara kompilasi dan tautan:
saat kompilasi, kompilasi mengubah dom, dan menyimpannya terlebih dahulu ketika menemukan tempat pendengar terikat. Beberapa disimpan, dan akhirnya diringkas menjadi fungsi tautan dan dijalankan bersama, yang meningkatkan kinerja.
16. Jawaban perbedaan antara Angular dan Jquery
:
Angular didasarkan pada data-driven, jadi Angular cocok untuk proyek dengan operasi data yang rumit (di sini Anda dapat menyebutkan aplikasi satu halaman lagi jika Anda tidak tahu caranya) itu, manfaatnya ada di sini lagi http://www.zhihu .com/question/20792064)
jquery didasarkan pada driver dom. jquery cocok untuk proyek dengan banyak operasi
dom Angular?
Jawaban:
Angular telah memperluas jenis elemen input dan menyediakan total 10 jenis berikut. :
teks
nomor
url
radio
kotak centang
tombol
tersembunyi
kirim
reset
Angular memiliki 4 gaya CSS bawaan untuk formulir.
ng-valid memverifikasi status hukum
ng-invalid memverifikasi status ilegal
ng-pristine Jika Anda ingin menggunakan formulir asli, Anda perlu menyetel nilai ini
ng-dirty Formulir dalam status data kotor
Angular akan memverifikasi Model kapan secara otomatis memverifikasi formulir. Jika ng-model tidak disetel, Angular tidak dapat mengetahui apakah nilai myForm.$invalid benar.
Konten yang diperlukan untuk verifikasi
menunjukkan apakah akan memasukkan konten
ng-maxlength, panjang maksimum
ng-minlength, panjang minimum.
Contoh: Portal https://github.com/18500047564/clutter
18. Apa itu filterer? Menerapkan jawaban filter khusus
:
tanggal (tanggal)
mata uang (mata uang)
limitTo (membatasi panjang array atau string)
orderBy (mengurutkan)
huruf kecil (huruf kecil)
huruf besar (huruf besar)
nomor (memformat angka, menambahkan pemisah ribuan, dan Menerima parameter membatasi jumlah koma desimal)
filter (memproses array, memfilter elemen yang mengandung substring tertentu)
json (memformat objek json)
Ada dua cara menggunakan filter,
salah satunya langsung di halaman:
<p>{{now | date : 'yyyy-MM-dd'}}</p>
Cara lainnya adalah menggunakannya di js:
$filter('filter name')(objek yang akan difilter, parameter 1, parameter 2,...) $filter('date')(sekarang, 'yyyy-MM-dd hh:mm:ss');
Sesuaikan array deduplikasi
app.filter("unique", function() { fungsi kembali(arr) { var n = []; var objek = {}; for (var i = 0; i < arr.panjang; i++) { jika (!obj[arr[i]]) { n.push(arr[i]); obj[arr[i]] = 1; } } kembali n; }; });