AngularJS-moduulit

Mikรค on AngularJS-moduuli?

Moduuli mรครคrittelee sovelluksen toiminnallisuuden, jota sovelletaan koko HTML-sivulle ng-app-direktiivin avulla. Se mรครคrittelee toiminnallisuudet, kuten palvelut, kรคskyt ja suodattimet, tavalla, jonka avulla sitรค on helppo kรคyttรครค uudelleen eri sovelluksissa.

Kaikissa aiemmissa opetusohjelmissamme olisit huomannut ng-app-direktiivin, jota kรคytetรครคn pรครคasiallisen Angular-sovelluksesi mรครคrittรคmiseen. Tรคmรค on yksi Angular.JS:n moduulien keskeisistรค kรคsitteistรค.

Kuinka luoda moduuli AngularJS: ssรค

Ennen kuin aloitamme moduulin kanssa, katsotaanpa esimerkkiรค AngularJS-sovelluksesta ilman moduulia ja ymmรคrretรครคn sitten moduulien tarve sovelluksessasi.

Harkitsemme tiedoston luomista nimeltรค "DemoController.js" ja lisรครคmรคllรค alla oleva koodi 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 lisรครคmme vain 2 muuttujaa a ja b ja lisรครคmme nรคmรค muuttujat uuteen muuttujaan c ja mรครคritรคmme sen takaisin laajuusobjektiin.

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)

    Kiinnitรคmme nyt ohjaimen AngularJS-moduuliimme โ€œSampleAppโ€. Tรคmรค tarkoittaa, ettรค jos emme viittaa moduuliin "sampleApp" pรครคHTML-koodissamme, emme voi viitata ohjaimemme toimivuuteen.

PรครคHTML-koodimme ei nรคytรค alla esitetyltรค

<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 Kulmikas.JS, nykyajan web-sovellusten kehittรคmisessรค kรคytetty malli on luoda useita moduuleja ja ohjaimia eri toimintotasojen loogisesti erottamiseksi.

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

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

Alla olevassa esimerkissรค

  • Luomme Utilities.js-nimisen tiedoston, joka sisรคltรครค 2 moduulia, joista toinen suorittaa yhteenlaskutoiminnon ja toinen vรคhennystoiminnon suorittamista varten.
  • Luomme sitten 2 erillistรค sovellustiedostoa ja kรคytรคmme apuohjelmatiedostoa kustakin sovellustiedostosta.
  • Yhdessรค sovellustiedostossa kรคytรคmme moduulia yhteenlaskua varten ja toisessa moduulia vรคhennyslaskua varten.

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',[]);

    On luotu 2 erillistรค Angular Module -moduulia, joista toinen on nimeltรครคn "AdditionApp" ja toinen "SubtractionApp".

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

    Jokaiselle moduulille on mรครคritetty 2 erillistรค ohjainta, joista toista kutsutaan DemoAddControlleriksi ja toista DemoSubtractControlleriksi. Jokaisella ohjaimella on erillinen logiikka lukujen yhteen- ja vรคhennyslaskua varten.

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

    Samoin teemme vรคhennysfunktiolle.

Vaihe 3) Luo tรคrkeimmรคt sovellustiedostot. Luodaan tiedosto nimeltรค "ApplicationSubtraction.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 = "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 SubtractionApp-moduulia ja DemoSubtractController-ohjelmaa kรคyttรคmรคllรค ng-app-direktiiviรค ja vastaavasti ng-ohjainta.

  3. {{d}}

    Koska viittaamme edellรค mainittuun moduuliin ja ohjaimeen, voimme viitata muuttujaan $scope.d lausekkeen kautta. Lauseke on tulos kahden laajuusmuuttujan a ja b vรคhentรคmisestรค, jotka suoritettiin "DemoSubtractController" ohjain

Yhteenveto

  • Ilman AngularJS-moduuleita ohjaimilla alkaa olla globaali ulottuvuus, mikรค johtaa huonoihin ohjelmointikรคytรคntรถihin.
  • Moduuleita kรคytetรครคn erottamaan liiketoimintalogiikka. Useita moduuleja voidaan luoda loogisesti erillรครคn nรคiden eri moduulien sisรคllรค.
  • Jokaisella AngularJS-moduulilla voi olla omat ohjaimet, jotka on mรครคritetty ja mรครคritetty sille.
  • Moduuleja ja ohjaimia mรครคriteltรคessรค ne mรครคritellรครคn normaalisti erikseen JavaKรคsikirjoitus tiedostot. Nรคmรค JavaKomentosarjatiedostoihin viitataan sitten pรครคsovellustiedostossa.

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