mata utama
- Gunakan kilang sudut untuk merangkum dan menguruskan penciptaan objek dan konfigurasi, memisahkan tumpuan penciptaan objek dari pengawal, dengan itu meningkatkan modulariti dan pemeliharaan.
- Melaksanakan perkhidmatan untuk mengendalikan pengambilan data dan logik perniagaan, menyelaraskan pengawal sudut supaya ia hanya memberi tumpuan kepada pengurusan pandangan.
- Gunakan sintaks
- untuk memudahkan pengikatan dalam templat dan mengelakkan perangkap biasa yang berkaitan dengan menggunakan
controllerAs
, dengan itu meningkatkan kebolehbacaan dan pemeliharaan kod anda.$scope
Refactor Pengawal dengan memindahkan logik yang boleh diguna semula ke perkhidmatan atau kilang, yang membantu mengekalkan pengawal yang bersih dan fokus yang terutamanya berkaitan dengan logik yang berkaitan dengan pandangan. - Pengawal, perkhidmatan dan kilang ujian menggunakan rangka kerja seperti Jasmine atau Mocha untuk memastikan komponen dapat beroperasi secara bebas dan menyimpan aplikasi yang mantap.
- Ciri -ciri berulang atau dikongsi abstrak ke dalam perkhidmatan atau kilang untuk mengelakkan duplikasi kod dan memudahkan mengemas kini dan mengurus ciri -ciri yang digunakan di bahagian -bahagian yang berlainan aplikasi.
Bagaimana ia begitu mudah untuk keluar dari kawalan?
Untuk menunjukkan bagaimana kerumitan tiba -tiba ini berlaku walaupun aplikasi AngularJS yang paling asas, mari kita mula membina aplikasi dan perhatikan di mana kita mungkin salah. Kemudian, kita akan melihat penyelesaiannya kemudian.
mari buat aplikasi mudah
Aplikasi yang akan kami buat adalah aplikasi pemarkahan pemain dribbble. Kami akan dapat memasukkan nama pengguna Dribbble dan menambahkannya ke papan skor. Spoiler - Anda dapat melihat pelaksanaan produk akhir yang berkesan di sini. Pertama buat fail index.html yang mengandungi kandungan berikut:
<!DOCTYPE html> <html> <head> <title>Angular 重构</title> <link href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> <🎜> </head> <body> <div class="container"> <div class="panel panel-default"> <div class="panel-heading">Dribbble 玩家分数</div> <div class="panel-body"> <p>添加 Dribbble 玩家以查看他们的排名:</p> <div class="form-inline"> <input class="form-control" type="text" /> <button class="btn btn-default">添加</button> </div> </div> <ul class="list-group"></ul> </div> </div> </body> </html>
Buat aplikasi AngularJS kami
Jika anda telah menulis aplikasi sudut sebelum ini, beberapa langkah seterusnya harus sangat akrab. Pertama, kami akan membuat fail app.js di mana kami meneliti aplikasi AngularJS kami:
<!DOCTYPE html> <html> <head> <title>Angular 重构</title> <link href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> <🎜> </head> <body> <div class="container"> <div class="panel panel-default"> <div class="panel-heading">Dribbble 玩家分数</div> <div class="panel-body"> <p>添加 Dribbble 玩家以查看他们的排名:</p> <div class="form-inline"> <input class="form-control" type="text" /> <button class="btn btn-default">添加</button> </div> </div> <ul class="list-group"></ul> </div> </div> </body> </html>
Sekarang, kami memasukkannya dalam fail index.html kami. Kami juga menambah atribut ng-app="dribbbleScorer"
ke tag kami untuk bootstrap aplikasi sudut.
var app = angular.module("dribbbleScorer", []);
Sekarang bahawa aplikasi kami ditubuhkan dan dibeli, kita boleh mula memproses logik perniagaan aplikasi.
(Kandungan berikut adalah serupa dengan teks asal, tetapi ayat -ayat dan perbendaharaan kata diselaraskan untuk memastikan makna asal tidak berubah, dan beberapa langkah berulang ditinggalkan untuk mengawal panjang output.) dengan secara beransur -ansur menambah fungsi (bentuk, pemerolehan data dribbble, penyingkiran pemain, penggunaan pemain, objek pemain, dan pengiraan skor), teks asal menunjukkan cara "menjalankan" langkah demi langkah, tetapi juga menyebabkan kod pengawal menjadi kembung dan kompleks.
Gunakan kilang sudut untuk abstrak fokus kami
Dua konsep menambah dan mengeluarkan pemain agak sebahagian daripada pengawal. Ini tidak begitu banyak bahawa pengawal mendedahkan fungsi ini, tetapi ia juga bertanggungjawab untuk pelaksanaannya. Bukankah lebih baik jika fungsi pengawal
hanya menyerahkan permintaan kepada bahagian lain aplikasi untuk mengendalikan selok -belok sebenarnya menambahkan pemain? Di sinilah kilang AngularJS dimainkan.
addPlayer()
Kami mencipta kilang
, yang merupakan pembina untuk membuat objek pemain dribbble. Kilang ini bertanggungjawab untuk mengambil data dari API Dribbble dan menambahkannya ke objek pemain. Dengan menggunakan kilang ini, kami mempermudah pengawal supaya ia hanya bertanggungjawab untuk menambah dan mengeluarkan pemain.
DribbblePlayer
dan kaedah, juga telah ditulis semula untuk menjadikannya lebih ringkas) likeScore()
commentScore()
kami juga menambah kaedah pengiraan skor ke kilang
DribbblePlayer
Artikel ini menunjukkan bagaimana dengan mudah menulis kod "boleh digunakan" dan bagaimana ia dengan cepat menjadi sukar untuk dijaga. Kami berakhir dengan pengawal huru -hara yang penuh dengan fungsi dan tanggungjawab. Walau bagaimanapun, selepas beberapa refactoring, fail pengawal kami kini kelihatan seperti ini:
Lebih mudah dibaca dan memberi tumpuan kepada sangat sedikit perkara - itulah yang refactoring. Saya harap saya telah memberikan anda alat yang diperlukan untuk membuat anda mula berfikir tentang cara yang lebih baik untuk membina aplikasi AngularJS. Refactoring gembira! Kod untuk tutorial ini boleh didapati di GitHub!
<html ng-app="dribbbleScorer"> ... </html>
(bahagian Soalan Lazim pada akhir teks asal ditinggalkan kerana artikel itu terlalu panjang dan mempunyai hubungan yang lemah dengan kandungan teras. Jika perlu, anda boleh bertanya soalan FAQ yang berasingan untuk dijawab.)
Atas ialah kandungan terperinci Rapi pengawal sudut anda dengan kilang dan perkhidmatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

JavaScriptusestWotypesofcomments: Single-line (//) danMulti-line (//)

Perbezaan utama antara Python dan JavaScript ialah sistem jenis dan senario aplikasi. 1. Python menggunakan jenis dinamik, sesuai untuk pengkomputeran saintifik dan analisis data. 2. JavaScript mengamalkan jenis yang lemah dan digunakan secara meluas dalam pembangunan depan dan stack penuh. Kedua -duanya mempunyai kelebihan mereka sendiri dalam pengaturcaraan dan pengoptimuman prestasi yang tidak segerak, dan harus diputuskan mengikut keperluan projek ketika memilih.

Sama ada untuk memilih Python atau JavaScript bergantung kepada jenis projek: 1) Pilih Python untuk Sains Data dan Tugas Automasi; 2) Pilih JavaScript untuk pembangunan front-end dan penuh. Python disukai untuk perpustakaannya yang kuat dalam pemprosesan data dan automasi, sementara JavaScript sangat diperlukan untuk kelebihannya dalam interaksi web dan pembangunan stack penuh.

Python dan JavaScript masing -masing mempunyai kelebihan mereka sendiri, dan pilihan bergantung kepada keperluan projek dan keutamaan peribadi. 1. Python mudah dipelajari, dengan sintaks ringkas, sesuai untuk sains data dan pembangunan back-end, tetapi mempunyai kelajuan pelaksanaan yang perlahan. 2. JavaScript berada di mana-mana dalam pembangunan front-end dan mempunyai keupayaan pengaturcaraan tak segerak yang kuat. Node.js menjadikannya sesuai untuk pembangunan penuh, tetapi sintaks mungkin rumit dan rawan kesilapan.

Javascriptisnotbuiltoncorc; it'saninterpretedlanguagethatrunsonenginesoftenwritteninc .1) javascriptwasdesignedasalightweight, interpratedlanguageforwebbrowsers.2)

JavaScript boleh digunakan untuk pembangunan front-end dan back-end. Bahagian depan meningkatkan pengalaman pengguna melalui operasi DOM, dan back-end mengendalikan tugas pelayan melalui Node.js. 1. Contoh front-end: Tukar kandungan teks laman web. 2. Contoh backend: Buat pelayan Node.js.

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.

Kuasa rangka kerja JavaScript terletak pada pembangunan yang memudahkan, meningkatkan pengalaman pengguna dan prestasi aplikasi. Apabila memilih rangka kerja, pertimbangkan: 1.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Dreamweaver CS6
Alat pembangunan web visual

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.
