


Analisis ringkas kitaran hayat dan pemprosesan tertunda dalam AngularJS_AngularJS
Di sini, kami membincangkan beberapa bekas Penyongsangan Kawalan termaju yang biasa digunakan: pemuatan malas, pengurusan seumur hidup dan resolusi penciptaan/pemprosesan tertunda).
Malas-Memuat
Apa yang dipanggil pemuatan malas adalah untuk membuat seketika objek apabila anda perlu menggunakannya. Banyak sistem suntikan kebergantungan mencipta komponen sebagai kebergantungan dari awal. Tetapi kadangkala, anda tidak mahu membuat instantiate komponen ini sehingga anda menggunakannya dalam aplikasi anda. Dalam Angular, contoh yang baik ialah apabila anda menetapkan tingkah laku semasa konfigurasi, dan tingkah laku itu merujuk kepada beberapa komponen yang belum dibuat lagi.
Andaikan anda ingin memintas perkhidmatan $log terbina dalam sistem, jadi anda menyimpannya dalam $rootScope. Sudah tentu saya tidak mengesyorkan ini, tetapi contoh ini lebih mudah dan lebih berkesan. Untuk memintas, anda menggunakan $provide semasa konfigurasi dan kemudian memanggil kaedah yang diubah suai. Jika anda ingin merujuk $rootScope secara langsung pada masa ini, anda akan mendapat pengecualian kerana rujukan pekeliling. Dan penyelesaiannya ialah dengan malas memuatkan $rootScope melalui $injector .
Kod berikut hanya akan memuatkan $rootScope pada kali pertama ia digunakan.
$provide.decorator(, [, , ($delegate, $injector) { log = $delegate.log.bind($delegate); $delegate.log = (msg) { rs = $injector.get(); (rs.logs === undefined) { rs.logs = []; } rs.logs.push(msg); log(msg); }; $delegate; }]);
Panggilan berikut akan mendapat $rootScope tunggal yang sama. Berikut ialah contoh yang berkesan. Saya nampaknya pernah mendengar kenyataan (salah) sebelum ini (Angular hanya menyokong singleton)... Sudah tentu ia tidak benar. Kaedah dalam $injector digunakan untuk menguruskan kitaran hayat komponen anda untuk anda.
Pengurusan kitaran hayat
Kitaran hayat melibatkan cara anda mengurus kejadian komponen. Secara lalai, apabila anda menyuntik kebergantungan Sudut, Suntikan Ketergantungan akan mencipta salinannya untuk anda dan menggunakannya semula dalam aplikasi anda. Selalunya ini adalah apa yang kita jangkakan. Dalam sesetengah kes, berbilang contoh komponen yang sama diperlukan. Andaikan perkhidmatan mengira berikut:
Counter($log) { $log.log(); } angular.extend(Counter.prototype, { count: 0, increment: () { .count += 1; .count; } }); Counter.$inject = []; app.service(, Counter);
Aplikasi anda akan menjejaki kaunter yang berbeza. Dan selepas anda menyuntik perkhidmatan, anda akan sentiasa mendapat kaunter yang sama. Adakah ini batasan Angular?
Sudah tentu tidak. Sekali lagi, anda boleh membuat salinan baharu pada bila-bila masa melalui perkhidmatan $injector. Kod berikut menggunakan dua pembilang bebas:
app.run([, , , (rs, c, i) { rs.count = c.count; rs.update = c.increment; rs.update2 = () { c = i.instantiate(Counter); rs.count2 = c.count; rs.update2 = () { c.increment(); rs.count2 = c.count; }; }; }]);
Anda boleh melihat bahawa kaunter dijejaki oleh kejadian yang berasingan, berikut ialah contoh yang boleh digunakan. Jika anda perlu menjana kejadian baharu dengan kerap, anda boleh mendaftarkan perkhidmatan seperti ini:
app.factory(, [, (i) { { getCounter: () { i.instantiate(Counter); } }; }]);
Semudah itu untuk menjana contoh yang diperlukan, dan anda boleh menggunakan komponen kilang anda sebagai ganti $injector:
app.run([, , (rs, cf) { c1 = cf.getCounter(), c2 = cf.getCounter(); rs.count = c1.count; rs.update = c1.increment; rs.count2 = c2.count; rs.update2 = () { rs.count2 = c2.increment(); }; }]);
Anda boleh menyemak ini versi penuh contoh yang tersedia. Seperti yang anda lihat, adalah mustahil untuk menguruskan kitaran hayat komponen anda menggunakan suntikan pergantungan terbina dalam Angular. Bagaimana pula dengan resolusi tertunda - contohnya, terdapat komponen yang anda perlu bawa masuk selepas Angular telah dikonfigurasikan, dan perlu dibalut dengan kebergantungan mereka.
Resolusi Tertunda
Kami telah memperkenalkan cara untuk mengendalikan kebergantungan dengan malas dalam Angular. Apabila anda ingin membungkus sesuatu, anda boleh memanggil instantiate perkhidmatan $injector, dan ia kemudian boleh menyelesaikan kebergantungan dengan parameter menghidu, yang kelihatan seperti ia akan menggunakan sifat statik $inject, atau ia juga boleh melakukannya dengan memeriksa yang Ia dilaksanakan sebagai tatasusunan. Dalam erti kata lain, berikut ialah cara penulisan yang sah sepenuhnya:
$injector.instantiate(['dependency', Constructor]);
Anda juga boleh memanggil kaedah pada tatasusunan berhias. Katakan anda mempunyai kaedah yang bergantung pada perkhidmatan $log Anda boleh memanggilnya pada masa jalan dengan pemprosesan tertunda, seperti ini:
myFunc = [, ($log) { $log.log(); }]; $injector.invoke(myFunc);
Sie können sich dieses Arbeitsbeispiel ansehen (öffnen Sie Ihre Konsole und sehen Sie, was passiert, nachdem Sie die Taste gedrückt haben).
Zusammenfassung
Zusammenfassend lässt sich sagen, dass die Abhängigkeitsinjektion von Angular viele erweiterte Funktionen bietet, die Sie in Ihrer Geschäftsanwendungsproduktionslinie benötigen und häufig verwenden. Die Bequemlichkeit von Fabriken, Diensten und Anbietern lässt Angular-Entwickler oft glauben, dass es nur eine Option gibt. Die Magie liegt im $injector-Dienst, mit dem Sie die benötigten Singletons generieren, neue Komponenten erstellen oder Methoden mit Abhängigkeiten dynamisch referenzieren können.
Beachten Sie abschließend, dass Injektionen in Ihren Client-Code auch außerhalb von Angular verfügbar sind. Schauen wir uns ein Beispiel für den Aufruf des $log-Dienstes durch Injektion außerhalb von Angular an. Klicken Sie hier. Warum müssen wir „ng“ an das Array der Methode übergeben? Es ist ein Kernmodul von Angular und wird implizit hinzugefügt, wenn Sie Ihr Modul umschließen. Wenn Ihre Direktive jedoch eine eigene injizierte Instanz generiert, müssen Sie sie explizit hinzufügen.

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Javascript 是一个非常有个性的语言. 无论是从代码的组织, 还是代码的编程范式, 还是面向对象理论都独具一格. 而很早就在争论的Javascript 是不是面向对象语言这个问题, 显然已有答案. 但是, 即使 Javascript 叱咤风云二十年, 如果想要看懂 jQuery, Angularjs, 甚至是 React 等流行框架, 观看《黑马云课堂JavaScript 高级框架设计视频教程》就对了。

Dalam era maklumat hari ini, laman web telah menjadi alat penting untuk orang ramai mendapatkan maklumat dan berkomunikasi. Tapak web responsif boleh menyesuaikan diri dengan pelbagai peranti dan memberikan pengguna pengalaman berkualiti tinggi, yang telah menjadi tumpuan dalam pembangunan tapak web moden. Artikel ini akan memperkenalkan cara menggunakan PHP dan AngularJS untuk membina tapak web responsif untuk memberikan pengalaman pengguna yang berkualiti tinggi. Pengenalan kepada PHP PHP ialah bahasa pengaturcaraan sisi pelayan sumber terbuka yang sesuai untuk pembangunan web. PHP mempunyai banyak kelebihan, seperti mudah dipelajari, merentas platform, perpustakaan alat yang kaya, kecekapan pembangunan

Dengan pembangunan berterusan Internet, aplikasi Web telah menjadi bahagian penting dalam pembinaan maklumat perusahaan dan cara kerja pemodenan yang diperlukan. Untuk menjadikan aplikasi web mudah dibangunkan, diselenggara dan dikembangkan, pembangun perlu memilih rangka kerja teknikal dan bahasa pengaturcaraan yang sesuai dengan keperluan pembangunan mereka. PHP dan AngularJS ialah dua teknologi pembangunan web yang sangat popular. Kedua-duanya adalah penyelesaian bahagian pelayan dan bahagian pelanggan. Penggunaan gabungan mereka boleh meningkatkan kecekapan pembangunan dan pengalaman pengguna aplikasi web. Kelebihan PHPPHP

Dengan perkembangan pesat teknologi Web, Aplikasi Web Halaman Tunggal (SinglePage Application, SPA) telah menjadi model aplikasi Web yang semakin popular. Berbanding dengan aplikasi web berbilang halaman tradisional, kelebihan terbesar SPA ialah pengalaman pengguna lebih lancar, dan tekanan pengkomputeran pada pelayan juga sangat berkurangan. Dalam artikel ini, kami akan memperkenalkan cara membina SPA mudah menggunakan Flask dan AngularJS. Flask ialah Py ringan

Dengan populariti aplikasi web, rangka kerja bahagian hadapan AngularJS telah menjadi semakin popular. AngularJS ialah rangka kerja JavaScript yang dibangunkan oleh Google yang membantu anda membina aplikasi web dengan keupayaan aplikasi web dinamik. Sebaliknya, untuk pengaturcaraan bahagian belakang, PHP ialah bahasa pengaturcaraan yang sangat popular. Jika anda menggunakan PHP untuk pengaturcaraan sisi pelayan, maka menggunakan PHP dengan AngularJS akan membawa lebih banyak kesan dinamik ke tapak web anda.

Dengan populariti Internet, semakin ramai orang menggunakan rangkaian untuk memindahkan dan berkongsi fail. Namun, atas pelbagai sebab, pengurusan fail menggunakan kaedah tradisional seperti FTP tidak dapat memenuhi keperluan pengguna moden. Oleh itu, mewujudkan platform pengurusan fail dalam talian yang mudah digunakan, cekap dan selamat telah menjadi satu trend. Platform pengurusan fail dalam talian yang diperkenalkan dalam artikel ini adalah berdasarkan PHP dan AngularJS Ia boleh melakukan muat naik, memuat turun, mengedit, memadam dan operasi lain dengan mudah, dan menyediakan satu siri fungsi yang berkuasa, seperti perkongsian fail, carian,

这篇文章介绍的内容是关于AngularJS基础入门介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下。

Dengan populariti dan perkembangan Internet, pembangunan bahagian hadapan menjadi semakin penting. Sebagai pembangun bahagian hadapan, kita perlu memahami dan menguasai pelbagai alatan dan teknologi pembangunan. Antaranya, PHP dan AngularJS adalah dua alat yang sangat berguna dan popular. Dalam artikel ini, kami akan menerangkan cara menggunakan kedua-dua alat ini untuk pembangunan bahagian hadapan. 1. Pengenalan kepada PHP PHP ialah bahasa skrip bahagian pelayan sumber terbuka yang popular Ia sesuai untuk pembangunan web dan boleh dijalankan pada pelayan web dan pelbagai sistem pengendalian. Kelebihan PHP adalah kesederhanaan, kelajuan dan kemudahan
