AngularJS-moduulit

โšก ร„lykรคs yhteenveto

AngularJS:n moduulit toimivat kontteina, jotka ryhmittelevรคt ohjaimet, palvelut, direktiivit ja suodattimet yhden loogisen rajan taakse, joten ng-app-direktiivi lataa vain ne toiminnot, joita yksittรคinen sivu todella tarvitsee suorituksen aikana.

  • ๐Ÿ”˜ Mรครคritelmรค: angular.module rekisterรถi ja hakee kaikki sovelluksen kรคyttรคmรคt komponentit.
  • โ˜‘๏ธ Creation: Riippuvuustaulukko luo moduulin; sen poisjรคttรคminen noutaa sellaisen.
  • โœ… Bootstrapping: ng-app nimeรครค moduulin kyseisen alueen kulmakuormituksiksi.
  • ๐Ÿงช etรคisyys: Moduulikohtaiset ohjaimet vรคlttรคvรคt globaaleja nimiรค ja ohjainten vรคlisiรค yhteenottoja.
  • ๐Ÿ“Š Versiohuomautus: AngularJS-tuki pรครคttyi tammikuussa 2022; Angular suosii erillisiรค komponentteja.

AngularJS-moduuliryhmรคping ohjaimet, palvelut, direktiivit ja suodattimet yhden ng-sovelluksen rajan alla

Mikรค on AngularJS-moduuli?

Moduuli mรครคrittelee sovelluksen toiminnallisuuden, jota sovelletaan koko HTML-sivuun ng-app-direktiivin avulla. Se mรครคrittelee toiminnallisuuden, kuten palvelut, direktiivienja suodattimia tavalla, joka helpottaa niiden uudelleenkรคyttรถรค eri sovelluksissa.

Yllรค oleva kuva tiivistรครค tuon rajan.

Kaikissa aiemmissa opetusohjelmat, olisit varmasti huomannut ng-app-direktiivin, jota kรคytetรครคn Angular-pรครคsovelluksesi mรครคrittelemiseen. Tรคmรค on yksi AngularJS:n moduulien keskeisistรค kรคsitteistรค.

โš ๏ธ Versiohuomautus: AngularJS-tuki pรครคttyi tammikuussa 2022. Moderni Kulma- kรคyttรครค @NgModule-moduulia, ja oletuksena on kรคytรถssรค erilliset komponentit. Alla oleva koodi on historiallista.

Kuinka luoda moduuli AngularJS: ssรค

Ennen kuin aloitamme moduulin tarkastelun, katsotaanpa esimerkkiรค AngularJS-sovellus ilman moduulia ja sitten ymmรคrrรคt moduulien tarpeen sovelluksessasi.

Tarkastellaanpa tiedoston โ€DemoController.jsโ€ luomista ja alla olevan koodin lisรครคmistรค tiedostoon

function DemoController($scope) {
                                    $scope.a=1;
                                    $scope.b=2;
                                    $scope.c=$scope.b + $scope.a;
                            }

Yllรค olevaan koodiin olemme luoneet toiminnon nimeltรค "DemoController", joka toimii ohjaimena sovelluksessamme.

Tรคssรค ohjaimessa suoritamme vain kahden muuttujan a ja b yhteenlaskun ja nรคiden muuttujien yhteenlaskun mรครคritรคmme uudelle muuttujalle c ja mรครคritรคmme sen takaisin muuttujalle c. laajuus esine.

Luodaan nyt pรครคasiallinen Sample.html, josta tulee pรครคsovelluksemme. Lisรคtรครคn alla oleva koodinpรคtkรค HTML-sivullemme.

<body ng-app="">
      <div ng-controller="DemoController">
      <h3> Guru99 Global Event</h3>
      {{c}}

Yllรค olevaan koodiin sisรคllytรคmme DemoControllerimme ja kutsumme sitten $scope.c-muuttujan arvon lausekkeen kautta.

Mutta huomaa ng-app-direktiivimme, sillรค on tyhjรค arvo.

  • Tรคmรค tarkoittaa pohjimmiltaan sitรค, ettรค kaikki ng-app-direktiivin puitteissa kutsutut ohjaimet ovat kรคytettรคvissรค maailmanlaajuisesti. Ei ole rajaa, joka erottaisi useita ohjaimia toisistaan.
  • Nykypรคivรคn ohjelmoinnissa tรคmรค on huono kรคytรคntรถ, ettรค ohjaimia ei ole liitetty mihinkรครคn moduuleihin ja tehdรค niistรค maailmanlaajuisesti saatavilla. Jokin looginen raja on mรครคriteltรคvรค ohjaimille.

Ja tรคssรค moduulit tulevat kรคyttรถรถn. Moduuleja kรคytetรครคn luomaan tuo rajojen erottelu ja auttamaan ohjaimien erottamisessa toiminnallisuuden perusteella.

Muutetaan yllรค oleva koodi moduulien toteuttamiseksi ja liitetรครคn ohjain tรคhรคn moduuliin

var sampleApp = angular.module('sampleApp',[]);
sampleApp.controller('DemoController', function($scope) {
                                    $scope.a=1;
                                    $scope.b=2;
                                    $scope.c=$scope.b + $scope.a;
                         });

Huomioikaa yllรค kirjoitetun koodin keskeiset erot

  1. var sampleApp = angular.module('sampleApp',[]);

    Olemme luomassa erityisesti AngularJS-moduulia nimeltรค "sampleApp". Tรคmรค muodostaa loogisen rajan tรคmรคn moduulin sisรคltรคmille toiminnoille. Joten yllรค olevassa esimerkissรคmme meillรค on moduuli, joka sisรคltรครค ohjaimen, joka suorittaa 2 laajuusobjektin lisรครคmisen roolin. Nรคin ollen meillรค voi olla yksi moduuli, jolla on looginen raja, joka sanoo, ettรค tรคmรค moduuli suorittaa vain sovelluksen matemaattisten laskelmien toiminnot.

  2. sampleApp.controller('DemoController', function($scope)

    Liitรคmme nyt ohjaimen AngularJS-moduuliimme "sampleApp". Tรคmรค tarkoittaa, ettรค jos emme viittaa 'sampleApp'-moduuliin HTML-koodissamme, emme voi viitata ohjaimemme toiminnallisuuteen.

Setteri vastaan โ€‹โ€‹getter: angular.module luo moduulin vain, kun riippuvuus taulukko vรคlitetรครคn; ilman sitรค kutsu hakee olemassa olevan moduulin.

Pรครค-HTML-koodimme nรคyttรครค nyt alla olevalta

<body ng-app="sampleApp">
                           <div ng-controller="DemoController">
                           <h3> Guru99 Global Event</h3>
                		   {{c}}

Huomioi tรคrkeimmรคt erot yllรค kirjoitetussa koodissa ja edellisessรค koodissamme

<body ng-app="sampleApp">

Kehotunnisteessamme

  • Sen sijaan, ettรค meillรค olisi tyhjรค ng-app-direktiivi, kutsumme nyt moduulia sampleApp:ksi.
  • Kutsumalla tรคtรค sovellusmoduulia voimme nyt kรคyttรครค ohjainta "DemoController" ja demo-ohjaimen toimintoja.

Moduulit ja ohjaimet AngularJS:ssรค

In angularjs, kehityksessรค kรคytetty malliping Nykyaikaisten verkkosovellusten ydin on luoda useita moduuleja ja ohjaimia useiden toiminnallisuustasojen loogiseksi erottamiseksi.

Normaalisti moduulit sรคilytetรครคn erillรครคn JavaKรคsikirjoitus tiedostot, jotka olisivat erilaisia โ€‹โ€‹kuin pรครคsovellustiedosto.

Katsotaanpa esimerkkiรค, kuinka tรคmรค voidaan saavuttaa.

Alla olevassa esimerkissรค

  • Luomme tiedoston nimeltรค Utilities.js, joka sisรคltรครค kaksi moduulia, toisen yhteenlaskun ja toisen alilaskun suorittamiseen.tracseen.
  • Luomme sitten 2 erillistรค sovellustiedostoa ja kรคytรคmme apuohjelmatiedostoa kustakin sovellustiedostosta.
  • Toisessa sovellustiedostossa kรคytรคmme moduulia yhteenlaskua varten ja toisessa moduulia alilaskuja varten.tracseen.

Vaihe 1) Mรครคritรค koodi useille moduuleille ja ohjaimille.

var AdditionApp = angular.module('AdditionApp',[]);
AdditionApp.controller('DemoAddController', function($scope) {
       $scope.a=5;
       $scope.b=6;
       $scope.c=$scope.a + $scope.b;
});
var SubractionApp = angular.module('SubtractionApp',[]);
SubractionApp.controller('DemoSubtractController', function($scope) {
       $scope.a=8;
       $scope.b=6;
       $scope.d=$scope.a - $scope.b;
});

Huomioikaa yllรค kirjoitetun koodin avainkohdat

  1.  var AdditionApp = angular.module('AdditionApp',[]);
     var SubractionApp = angular.module('SubtractionApp',[]);

    Luodaan kaksi erillistรค AngularJS-moduulia, joista toinen on nimeltรครคn 'AdditionApp' ja toinen 'Sub'.tractionApp'.

  2. AdditionApp.controller('DemoAddController', function($scope)
    SubractionApp.controller('DemoSubtractController', function($scope)

    Jokaiselle moduulille on mรครคritelty kaksi erillistรค ohjainta, toinen on nimeltรครคn DemoAddController ja toinen on DemoSub.tractOhjain. Jokaisella ohjaimella on erillinen logiikka yhteenlaskulle ja alilaskulle.tracnumeroiden jakaminen.

Vaihe 2) Luo tรคrkeimmรคt sovellustiedostot. Luodaan tiedosto nimeltรค ApplicationAddition.html ja lisรคtรครคn alla oleva koodi

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Addition</title>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="lib/utilities.js"></script>
</head>
<body>
<div ng-app = "AdditionApp" ng-controller="DemoAddController">
    Addition :{{c}}

</div>
</body>
</html>

Huomioikaa yllรค kirjoitetun koodin avainkohdat

  1. <script src="/lib/Utilities.js"></script>

    Viitaamme Utilities.js-tiedostoomme pรครคsovellustiedostossamme. Tรคmรคn avulla voimme viitata mihin tahansa tรคssรค tiedostossa mรครคritettyihin AngularJS-moduuleihin.

  2. <div ng-app = "AdditionApp" ng-controller="DemoAddController">

    Pรครคsemme AdditionApp-moduuliin ja DemoAddControlleriin kรคyttรคmรคllรค ng-app-direktiiviรค ja ng-ohjain vastaavasti.

  3. {{c}}

    Koska viittaamme edellรค mainittuun moduuliin ja ohjaimeen, voimme viitata $scope.c-muuttujaan lausekkeen kautta. Lauseke on tulos kahden laajuusmuuttujan a ja b lisรครคmisestรค, jotka suoritettiin 'DemoAddController'-ohjaimessa

    Samalla tavalla teemme sub-tiedostoilletraction funktio.

Vaihe 3) Luo pรครคsovellustiedostosi. Luodaan tiedosto nimeltรค โ€œApplicationSubtraction.htmlโ€ ja lisรครค alla oleva koodi

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Addition</title>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script src="lib/utilities.js"></script>
</head>
<body>
<div ng-app = "SubtractionApp" ng-controller="DemoSubtractController">
    Subtraction :{{d}}
  
</div>
</body>
</html>

Huomioikaa yllรค kirjoitetun koodin avainkohdat

  1. <script src="/lib/Utilities.js"></script>

    Viitaamme Utilities.js-tiedostoomme pรครคsovellustiedostossamme. Tรคmรคn avulla voimme viitata mihin tahansa tรคssรค tiedostossa mรครคritettyihin moduuleihin.

  2. <div ng-app = " SubtractionApp " ng-controller=" DemoSubtractController ">

    Kรคytรคmme 'Sub'-valikkoatractionApp'-moduuli ja DemoSubtractController kรคyttรคmรคllรค ng-app-direktiiviรค ja ng-controlleria.

  3. {{d}}

    Koska viittaamme edellรค mainittuun moduuliin ja ohjaimeen, voimme viitata $scope.d-muuttujaan lausekkeen kautta. Lauseke on alifunktion tulos.trackahden laajuusmuuttujan a ja b mรครคritys, joka suoritettiin 'DemoSub'-ohjelmassatractController-ohjain

UKK

Taulukon syรถttรคminen luo moduulin. Sen poisjรคttรคminen noutaa rekisterรถidyn moduulin, joten useat tiedostot laajentavat yhtรค injektio nimitila.

Ei. AngularJS kรคynnistรครค vain ensimmรคisen lรถydetyn ng-sovelluksen; muut moduulit tarvitsevat manuaalisen angular.bootstrap-kutsua elementilleen.

config() suoritetaan palveluntarjoajien rekisterรถityessรค, joten vain palveluntarjoajat ja vakiot injektoidaan sinne. run() suoritetaan, kun injektori on valmis.

Ng-app-arvo ei vastaa rekisterรถityรค moduulia. Kirjoitusvirheet, lainausmerkeissรค olevat nimet tai moduulitiedoston lataaminen AngularJS:n jรคlkeen aiheuttavat tรคmรคn.

Lataa se angular.mock.module-funktion kautta ja ratkaise sitten ohjaimet inject():llรค. Selaintason kattavuus ohjaa sen sijaan sivua, kuten aiemmin on kรคynyt kohtitracTor.

@NgModule otti haltuunsa Angular 2:ssa, ja itsenรคiset komponentit ovat nyt oletusarvoisia ja ne ilmoittavat riippuvuudet omien import-taulukoidensa kautta.

Koneoppimistyรถkalut lukevat jokaisen angular.module-kutsun, rakentavat riippuvuusgraafin ja luokittelevat moduulit migraatioriskin mukaan. Revkatsojat tarkistavat jokaisen Direktiivi karttaping.

GitHub Copilot ja vastaavat agenttiavustajat lรคhettรคvรคt moduuli-, ohjain- ja tiedostorunkoja yhdestรค kehotteesta. Luotu koodi on tarkistettava.

Tiivistรค tรคmรค viesti seuraavasti: